Cómo crear su propio servidor de desarrollo Python con Raspberry Pi

En términos simples, Raspberry Pi es una computadora basada en Linux súper barata ($ 40). Eso es. Seriamente.

Puede hacer todo lo que imagina que puede hacer una computadora Linux normal, como navegar por la web, escribir código, editar documentos y conectarse a dispositivos de E / S como memoria USB, mouse, teclado, etc. Este tutorial se enfocará en aprendiendo a crear su propio servidor de desarrollo Python con Raspberry Pi.

Paso 0. Defina el objetivo

Antes de comenzar, es importante comprender qué es lo que estamos tratando de construir. Al final del tutorial, podrá ejecutar un sitio web básico (usando Flask) desde una Raspberry Pi en su red doméstica local.

El objetivo de este tutorial es demostrar cómo se puede usar una Pi como servidor de desarrollo, más específicamente, el ejemplo será alojar un sitio web simple (usando Flask).

Paso 1. Exprese las suposiciones

Aquí hay algunas suposiciones que hará este tutorial:

  1. Ya tienes una Raspberry Pi configurada con Raspbian OS. Aquí hay una guía de configuración útil si la necesita.
  2. El Pi está conectado a la red WiFi de su hogar (y usted conoce la dirección IP del Pi).
  3. No necesitará una pantalla en el futuro. asumiendo que los puntos 1 y 2 están completos.

Usaremos VS Code con la extensión Remote VSCode para crear y editar archivos de forma remota en la Pi. Definitivamente recomiendo que use estos dos para seguir adelante. Además, esto facilitará mucho el trabajo con archivos remotos, así que eso es una ventaja.

Paso 2. Encuentra la dirección IP de Pi

Primero, conecte el Pi a una fuente de alimentación y asegúrese de que esté correctamente iniciado y conectado a WiFi / Ethernet (básicamente, necesita tener una conexión a Internet).

Usaremos ssh para conectarnos y comunicarnos con el Pi. Para hacerlo de forma remota utilizando una computadora portátil, debe conocer su dirección IP. Esto se puede obtener fácilmente utilizando el portal de administración de su ISP (generalmente disponible en //192.168.0.1. Tenga en cuenta que esto podría ser diferente para diferentes ISP).

Por lo general, debe tener su Pi conectado a una dirección que puede parecerse a '192.168.0.12'. Nuevamente, esto será diferente para diferentes personas. Por lo tanto, use la dirección IP que encontró para su Pi en el portal de administración. En el futuro, este tutorial utilizará 192.168.0.12 como la dirección IP de Pi.

Paso 3. Conéctese al Pi usando ssh

Abra VS Code y su ventana de terminal incorporada en su computadora portátil. Conéctese al Pi con una dirección IP de 192.188.0.12 usando el siguiente comando ssh:

ssh -R 52698: localhost: 52698 [email protected]

El comando anterior configurará un canal de comunicación bidireccional entre su computadora portátil y la Pi. Si es la primera vez que se conecta al Pi, use frambuesa como contraseña. Es posible que se le solicite que cambie su contraseña predeterminada. Es muy recomendable que lo haga.

Paso 4. Crea un directorio de proyectos

Ahora debería estar en el directorio de inicio de la Pi. Creemos un directorio para el sitio web que deseamos construir. Utilice el siguiente comando para crear el directorio:

mkdir MyFlask Sitio web

Use el comando 'ls' para verificar que efectivamente puede ver una nueva carpeta llamada MyFlaskWebsite.

Paso 5. Instale el matraz

Usaremos Flask para crear un sitio web simple. Flask es un marco de micro web basado en Python. Utiliza Jinja (motor de plantillas basado en Python) como su motor de plantillas, lo que lo hace muy útil y potente. Use el siguiente comando para instalar flask en la Pi:

sudo apt-get install python3-flask

Paso 6. Escribe un código básico

Ahora que Flask está instalado, podemos comenzar a crear archivos y escribir código. Primero, navegue hasta el directorio de su proyecto recién creado (desde el paso 4) usando el siguiente comando:

cd MyFlask Sitio web

Todos los archivos y carpetas del proyecto residirán dentro de este directorio 'MyFlaskWebsite'. Ahora, cree su primer archivo de código (app.py) usando el siguiente comando:

toque app.py

Al verificar el directorio usando el comando 'ls', debería poder ver este archivo recién creado.

Ahora, presione F1 y elija 'Servidor de inicio remoto'. Esto debería permitirle editar archivos de forma remota en el Pi usando su computadora portátil.

A continuación, use el siguiente comando para comenzar a editar el archivo app.py recién creado. Puede que tarde unos segundos, pero el archivo vacío debería aparecer en la ventana de arriba.

rmate app.py

Escriba el código que se muestra en la siguiente imagen. Aquí, hemos definido una ruta a la página de inicio del sitio web que debería mostrar "Este es mi sitio web de matraces y es genial". Tenga en cuenta que configurar el host en 0.0.0.0 permite que este sitio web sea accesible para todos los dispositivos conectados a la misma red.

Guarde el archivo y use el siguiente comando para ejecutar el sitio web en el servidor Pi:

python3 app.py

Al recibir el mensaje de éxito anterior, abra una nueva ventana del navegador en cualquier dispositivo dentro de su red y escriba la dirección IP de la Pi (en este caso, es 192.168.0.12) seguida del puerto en el que se está ejecutando el servidor de desarrollo (5000. ) Entonces la dirección completa será //192.168.0.12:5000/

Debería ver el texto 'Este es mi sitio web de matraces y es genial'. en la página web.

Esto confirma que su servidor de desarrollo está activo y está ejecutando el sitio web que acaba de crear.

Paso 7. Agrega más rutas

Actualmente, el código consta de solo 1 ruta, que es la página de inicio del sitio web. Agregue otra ruta escribiendo el siguiente código. Tenga en cuenta que puede realizar cambios dinámicamente mientras se ejecuta el servidor de desarrollo. Capturará automáticamente el delta (cambio de código) y ejecutará una versión revisada una vez que actualice la ventana de su navegador.

Para comprobar si la nueva ruta funciona como se esperaba, vaya a //192.168.0.12:5000/meow y la página web debería 'MEOW'.

Paso 8. Agrega estructura a tu código

Ahora, agregar más rutas es genial, pero tener todo el código en solo 1 archivo app.py no es cómo debería estructurarse un sitio web. Por lo general, tendríamos una carpeta con plantillas HTML, una carpeta con archivos CSS estáticos y otra para archivos JS. Agreguemos estas carpetas y muevamos el código en las carpetas apropiadas para estructurar mejor el código. Utilice los siguientes comandos para crear estos directorios:

plantillas mkdir mkdir static

Utilice el comando 'ls' para verificar que se hayan creado estas carpetas.

Ahora, creemos un archivo HTML para la página de inicio. Utilice los siguientes comandos para navegar al directorio de plantillas. Luego, cree un nuevo archivo llamado index.html y use rmate para editar el mismo:

plantillas de cd touch index.html rmate index.html

Escriba un código HTML básico para la página de inicio dentro de index.html.

Realice los siguientes cambios en app.py para usar el archivo index.html. El siguiente código buscará un archivo llamado index.html en el directorio de plantillas de forma predeterminada.

Vuelva al directorio del proyecto y vuelva a ejecutar el sitio web.

Regrese a la página de inicio y debería ver el contenido que puso dentro de index.html.

Ahora agregue algo de estilo creando 'main.css' dentro del directorio estático. Como siempre, use el comando 'cd' para cambiar el directorio, el comando 'touch' para crear un nuevo archivo y el comando 'rmate' para editar el mismo archivo.

Agregue un poco de estilo a la etiqueta h4. Tenga en cuenta que actualmente tenemos 1 etiqueta h4 en index.html que se supone que debe modificar el CSS.

Como siempre, pruebe sus cambios usando el siguiente comando:

python3 app.py

Observe cómo el texto dentro de la etiqueta h4 se colorea de acuerdo con el CSS.

Paso 9. Aprovecha Jinja

Jinja en un motor de plantillas basado en Python que agrega muchas funciones poderosas a las páginas web. Aunque este tutorial no se centra en el aprendizaje de Jinja, veamos un ejemplo simple de cómo Jinja puede ser útil.

Vamos a crear una lista de frutas en app.py y pasarla como parámetro a index.html. Luego, index.html mostrará esa lista en la página web. Realice los siguientes cambios en app.py e index.html.

Actualice su página web y debería ver la lista de frutas en la pantalla.

Esto habla de lo poderoso y útil que puede ser Jinja. Para obtener más información sobre Jinja, consulte esto.

Paso 10. Próximos pasos

Ahora que tiene un servidor de desarrollo Python completamente funcional, las posibilidades en el futuro son prácticamente infinitas. A continuación, se muestran algunos pasos útiles que puede considerar para su proyecto:

  1. Actualmente, solo se puede acceder al Pi a través de los dispositivos dentro de su red personal. Para exponer el Pi al mundo exterior (acceder a él a través de cualquier dispositivo fuera de su red personal), necesita algo conocido como reenvío de puertos. Básicamente, necesita un nombre de dominio y una dirección IP estática que está asignada permanentemente al Pi. Mas información aquí y aquí.
  2. La mayoría de las aplicaciones requerirán una base de datos para las operaciones CRUD básicas. Python es compatible con SQlite desde el primer momento. Aprenda a usar SQlite con Flask aquí y aquí.
  3. Aquí hay un genial kit de inicio de Raspberry Pi en Amazon. Lo bueno de esto es que tiene todo lo que necesita para comenzar y le ahorra el esfuerzo de buscar elementos individuales usted mismo.
  4. Dado que no está usando una pantalla, es importante que use el comando de apagado para el Pi usando el terminal. Esto asegura que el Pi y la tarjeta SD no se dañen:
sudo shutdown -h ahora

#Hasta la proxima vez.