Controlando nuestra aplicación con flask-script
La extensión flask-script nos proporciona la posibilidad de gestionar nuestra aplicación flask desde un comando (Interfaz de línea de comando).
Nos permite escribir pequeños programa (scripts) que gestionen nuestra aplicación, por defecto nos ofrece el servidor web de desarrollo y un interprete (shell) con nuestra aplicación cargada.
Instalación de la extensión flask-script
Con nuestro entorno virtual activado, ejecutamos:
$ pip install Flask-Script
Por lo tanto en nuestro fichero requirements.txt
añadimos el nuevo módulo:
Flask
Flask-Script
Estructura de nuestra aplicación
Vamos a organizar nuestra aplicación web en un paquete con la siguiente estrucutra de directorios:
manage.py
requirements.txt
aplicacion
app.py
__init__.py
manage.py
: Será el script que utilizaremos para gestionar la aplicación (flask-script).requirements.txt
: Fichero con los módulos necesarios para nuestra aplicación funcione.aplicacion
: Paquete python (hemos creado el fichero__init__.py
) donde vamos a guardar los ficheros de nuestra aplicación, por ahora guardamos el módulo principalapp.py
.
CLI con flask-script
El contenido del fichero mangage.py será el siguiente:
from flask_script import Manager
from aplicacion.app import app
manager = Manager(app)
app.config['DEBUG'] = True # Ensure debugger will load.
if __name__ == '__main__':
manager.run()
Utilización de manage.py
Por defecto el CLI flask-script nos proporciona dos funciones: el servidor web de desarrollo y una shell interactiva con el contexto de la aplicación.
python3 manage.py runserver
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 106-669-497
Si queremos cambiar la dirección y el puerto:
python3 manage.py runserver -h 0.0.0.0 -p 8080
Y para accedr a la shell:
python3 manage.py shell
In [1]: app
Out[1]: <Flask 'aplicacion.app'>
In [2]: app.config
Out[2]: <Config {'JSON_AS_ASCII': True, ...>