Estamos seguros de que, en tu camino por la programación y el desarrollo de aplicaciones de escritorio o web en Python, has escuchado hablar de Flask. Pero ¿sabes para qué sirve o cómo trabajar con Flask? ¿Sabes cómo instalar una web app Flask en Ubuntu? Si la respuesta es no, te resolvemos la duda y, en este post, te brindamos un guía rápida de cómo instalar una web app flash en Ubuntu.
Según la documentación sobre Flask, es un framework que permite el desarrollo de aplicaciones web. Es una de las herramientas más utilizadas para empezar en el desarrollo de aplicaciones en el lenguaje de programación Python. Por eso, si usas Linux, te recomendamos saber cómo instalar una web app flask en Ubuntu.
Guía rápida: cómo crear una app flask en Ubuntu
Para instalar una web app flask en Ubuntu deberás seguir estos pasos:
- Darse de alta en Amazon Web Service (AWS): si quieres saber qué es AWS y cuáles son sus posibilidades te recomendamos revisar el post sobre qué es Amazon Web Service AWS. Para entrar en AWS, debes dirigirte a la página oficial y acceder a la AWS Console. Después, deberás crear una cuenta y poner una tarjeta. No te cobrarán hasta después de terminar el primer año. Después de validar la cuenta, estás listo para utilizar tu cuenta de AWS.
- Crear instancia EC2 en AWS: para crear la instancia en EC2 deberás ingresar a AWS, darle en la opción “Todos los servicios” y, después, en “informática”. En el botón de “Lanzar la instancia”, seguirás pasos como la elección de la imagen del AMI, el tipo y la configuración de las instancias, agregar etiquetas y lanzar la instancia.
- Conectarse remotamente a la instancia: la conexión a la instancia depende del sistema operativo que utilices. Aun así, debes tener clara la IP de instancia, que encuentras en los recursos de la consola de AWS.
- Instalar las herramientas necesarias: nginx, Git, Python y sus dependencias, curl, sqlite3 y virtualenv. De la siguiente forma: sudo apt-get update -ysudo apt-get install nginx git gunicorn curl sqlite3virtualenv.
- Crear el usuario app de la siguiente forma:
sudo adduser <usuario_app>
sudo passwd -l <usuario_app>
sudo adduser www-data <usuario_app>. - Clonar la aplicación de la siguiente forma:
sudo -u <usuario_app> -i
git clone https://github.com/pigmonchu/kakebo_web_bz7.git <dir_app>. - Configurar la aplicación:
cd <dir_app>
cp config_template.py config.py
nano config.py
cd ..mkdir logs - Crear la base de datos de la aplicación con estas instrucciones:
cd mkdir data
cd data
sqlite3 movimientos.db
.read ../migrations/initial.sql
.tables
.q - Crear el entorno virtual con la siguiente instrucción:
cd
virtualenv venv -p python3
. venv/bin/activate - Instalar las dependencias de la aplicación con los comandos planteados a continuación:
cd <dir_app>
pip install -r requirements.txt
pip install gunicorn - Probar la aplicación con: gunicorn run:app, mientras que en otras sesión deberás ingresar curl localhost:8000 y comprobar si sirve la portada.
- Crear el gunicorn service y, después, controlarlo con systemd: después deberás realizar un reinicio. En este paso se utiliza cirus, que es un monitor de procesos, para que Python pueda iniciarse tan pronto como se lance la web app y, además, haga un relanzamiento por si se llega a caer de manera automática. Además, para hacer el lanzamiento con cirus, deberás utilizar systemd, que es un gestor de lanzamiento de Linux (dado que esta guía rápida es para lanzar una web app por medio de Ubuntu, una distribución de Linux). El gestor systemd permitirá el lanzamiento de cirus, mientras cirus realiza el lanzamiento de la instancia.
- Lanzamiento por medio del paso anterior con la próxima instrucción:
sudo systemctl daemon-reload # ←recarga el gestor de servicios
sudo systemctl start circus # ←lanza el nuevo servicio circus
sudo systemctl enable circus # ←preparar para iniciar el servicio cuando se lance la instancia - Configurar Nginx: en este paso se deberá crear un fichero de configuración con la siguiente instrucción: sudo nano /etc/nginx/nginx.conf y un contenido determinado. Después se creará el sym-link con sudo ln -s /etc/nginx/sites-available/kakebo/etc/nginx/sites-enabled/app.
- Configurar nuestro AWS: deberás abrir los puertos.
- Es el momento de probar la aplicación.
¡Este el proceso para instalar una web app flask en Ubuntu!
Si bien ya conoces una guía rápida para instalar una web app flask en Ubuntu, puedes seguir estos pasos y utilizarla para el desarrollo y el lanzamiento de tu aplicación.
Cómo aprender más sobre instalar una web app Flask en Ubuntu
Si quieres profundizar aún más en la utilización de flask para tu aplicación web, en la guía de instalación y en programas para el desarrollo de programas y otras herramientas y conceptos, te invitamos a explorar nuestro Bootcamp Aprende a Programar desde Cero. En solo 4 meses ya podrás ser un programador junior para Python gracias a la metodología que combina la teoría y la práctica y los profesores expertos en el sector. ¡No te puedes perder este bootcamp! Solicita más información y apúntate para continuar aprendiendo y destacar en el mundo tecnológico.