Estructura básica de un proyecto web con Flask Micro-Framework, con Blueprints implementado para la modularización de rutas.
Este proyecto solo contiene 2 archivos .html en los módulos Productos y Proveedor, pero sin ningún tipo de diseño GUI en particular.
myapp/
├── config
│ ├── config.cfg
│ └── test.py
├── static
| ├── css
| │ └── loquesea.css
| └── js
| └── loquesea.js
├── init.py
├── productos
│ ├── init.py
│ ├── routes.py
│ ├── static
│ └── templates
│ ├── formulario-producto.html
│ └── productos.html
├── proveedores
├── init.py
├── models.py
├── routes.py
└── templates
├── Formulario.html
└── Proveedores.html
Esta vez vamos a crear una WSGI de apache para desplegar esta aplicación, muestro a continuación todos los pasos para poder replicarlo por tu cuenta.
Esto es desplegado en Ubuntu 18.04, pero puede funcionar en otra distribución y versión, mientras se tenga los siguientes requerimientos:
- Python3.6 o superior
- python3.6-venv o superior
- Apache2
- El paquete libapache2-mod-wsgi-py3
Ejecuta: $ sudo apt-get update
Ejecuta: $ sudo apt-get install python3 python3-venv
Ejecuta: $ sudo apt-get install apache2 libapache2-mod-wsgi-py3
Ejecuta: $ sudo /etc/init.d/apache2 start
Ejecuta: $ sudo /etc/init.d/apache2 status
Ejecuta: $ python3 -m vevn env
Activar el entorno, ejecuta: $ source env/bin/activate
Instalar dependencias, ejecuta: $ pip3 install -r requirements.txt
Ejecuta: $ chown www-data.www-data App-Flask-Blueprints/ -R
En este caso te he dejado un archivo ya preparado (App-Flask.conf), el cual ya tiene una configuración inicial.
Copialo en la ruta /etc/apache2/sites-available/
.
Ejecuta: $ sudo cp App-Flask.conf /etc/apache2/sites-available/000-default.conf
Este archivo (App-Flask.conf) lo he dejado con un path, posiblemente distinto al tuyo, por lo que debes abrir el archivo /etc/apache2/sites-available/000-default.conf
y modificarlo.
Ejecuta: $ sudo vim /etc/apache2/sites-available/000-default.conf
Ejecuta: $ sudo /etc/init.d/apache2 restart
Ejecuta: $ sudo /etc/init.d/apache2 status
¡Listo! Ya tienes desplegada tu aplicación escrita con Flask en Apache2, utilizando la interfaz WSGI.
Esta configuración puede funcionar en DJango, inténtalo.
Desarrollado por: @carlosmmairena
Instagram: https://www.instagram.com/carlosmmairena/
StackShare: https://stackshare.io/carlosmmairena