Instalación de Flask como servidor web en la raspberry pi
En este artículo vamos a instalar el servidor Flask en la raspberry pi. Al tratarse de un servidor en python, y python el lenguaje más común utilizado para trabajar con la raspberry pi, el usar Flask nos permitirá generar páginas web que hagan de interfaz para nuestros programas en la raspberry pi. Podríamos, por ejemplo, conectar un botón para encender una luz desde el teléfono móvil, o abrir una cerradura, o cualquier otro proyecto que tengamos en nuestra raspberry. ¡Pruébalo, merece la pena!
Contenidos
Instalación de flask
Te contamos la mejor forma de instalar Flask para hacer unas pruebas. Flask contiene algunas librerías python, y si tienes algunos proyectos que utilicen python (la mayoría de los que uses en tu raspberry pi) a lo mejor no te interesa instalar el programa globalmente para evitar posibles problemas con las versiones de las librerías. Esto no sólo es un problema de flask, sino del desarrollo en python en general, y los desarrolladores le han dado solución hace tiempo: utilizar entornos virtuales.
Instalación de virtualenv
Como ya hemos dicho, virtualenv es lo probablemente el programa que quieres instalar en general mientras desarollas. ¿Para qué sirve? Cuantos más proyectos tengas, más probable es que utilices diferentes versiones de Python, o diferentes versiones de las librerías. Esto puede suponer un problema, porque a veces las diferentes versiones de las librerías son incompatibles unas con otras. Si tienes muchos proyectos, aumenta la posibilidad de que alguna librería coincida, y actualizando una librería para un proyecto estropees otro debido a un conflicto de dependencias. ¿A quién vas a llamar? ¡Virtualenv! Esta herramienta te permite habilitar instalaciones múltiples de Python, para mantener tus proyectos aislados unos de otros. A continuación te mostramos como funciona.
Para instalarlo, sólo necesitas usar pip. En Raspbian Jessie y posteriores está instalado por defecto, por lo que sólo tendrás que hacer:
pi@raspberrypi:~ $ sudo pip install virtualenv
Uso de virtualenv
En general crearemos un directorio para nuestro proyecto y accederemos a él. En este caso, le llamaremos pantiltproject porque será un proyecto para mover una cámara en horizontal y vertical («pan» y «tilt» en inglés).
pi@raspberrypi:~ $mkdir pantiltproject pi@raspberrypi:~ $cd pantiltproject
Le vamos a dar el nombre «entornovirtual»
pi@raspberrypi:~/pantiltproject $virtualenv entornovirtual
Para entrar en nuestro entorno virtual, sencillamente ejecutaremos el siguiente comando:
pi@raspberrypi:~/pantiltproject $. entornovirtual/bin/activate
Para salir del entorno virtual y volver al entorno global, se usa deactivate.
(entornovirtual) pi@raspberrypi:~/pantiltproject $deactivate
Instalar Flask en el virtualenv
Entraremos en nuestro entorno virtual (si ya estás dentro, sáltate los comandos que no necesites) y ejecutamos el comando pip install Flask para instalar Flask en nuestro entorno virtual:
pi@raspberrypi:~ $cd ~ pi@raspberrypi:~ $cd pantiltproject pi@raspberrypi:~/pantiltproject $. entornovirtual/bin/activate (entornovirtual) pi@raspberrypi:~/pantiltproject $ pip install Flask
Hello World en Flask
«Hello World» se ha convertido en un clásico de la programación, de forma que es lo primero que se enseña cuando se aprende a utilizar un lenguaje de programación. Hagamos nuestro particular hello world en Flask. Primero, editaremos con nano el fichero helloworld.py.
(entornovirtual) pi@raspberrypi:~/pantiltproject $ nano helloworld.py
Puedes copiar el contenido del fichero de aquí:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return '¡Hola mundo!'
Ejecutando el servidor flask:
Para ejecutar el servidor flask, solo necesitamos ejecutar el comando siguiente:
(entornovirtual) pi@raspberrypi:~/pantiltproject $ export FLASK_APP=helloworld.py (entornovirtual) pi@raspberrypi:~/pantiltproject $ flask run --host=0.0.0.0 * Serving Flask app "helloworld" * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Puedes ver el resultado desde tu navegador, usando la dirección IP de tu raspberry pi y el puerto 5000:
De momento eso es todo, esperamos que te guste esta nueva forma de interactuar con tus proyectos de python.
¿Quieres algunas ideas? ¡Te esperamos en los comentarios!
Pingback: Control de cámara IP usando servos y un servidor web en Raspberry pi - Nociones.de