Saltar al contenido

Recarga automática de la aplicación Python Flask ante cambios de código

Solución:

La forma recomendada actual es con el flask utilidad de línea de comandos.

https://flask.palletsprojects.com/en/1.1.x/quickstart/#debug-mode

Ejemplo:

$ export FLASK_APP=main.py
$ export FLASK_ENV=development
$ flask run

o en un comando:

$ FLASK_APP=main.py FLASK_ENV=development flask run

Si desea un puerto diferente al predeterminado (5000) agregar --port opción.

Ejemplo:

$ FLASK_APP=main.py FLASK_ENV=development flask run --port 8080

Hay más opciones disponibles con:

$ flask run --help

FLASK_APP también se puede configurar en module:app o module:create_app en lugar de module.py. Consulte https://flask.palletsprojects.com/en/1.1.x/cli/#application-discovery para obtener una explicación completa.

Si está hablando de entornos de prueba / desarrollo, simplemente use la opción de depuración. Recargará automáticamente la aplicación del matraz cuando ocurra un cambio de código.

app.run(debug=True)

O, desde el caparazón:

$ export FLASK_DEBUG=1
$ flask run

http://flask.pocoo.org/docs/quickstart/#debug-mode

En entornos de prueba / desarrollo

El depurador werkzeug ya tiene una función de ‘recarga automática’ disponible que se puede habilitar realizando una de las siguientes acciones:

app.run(debug=True)

o

app.debug = True

También puede usar un archivo de configuración separado para administrar toda su configuración si es necesario. Por ejemplo, uso ‘settings.py’ con una opción ‘DEBUG = True’. Importar este archivo también es fácil;

app.config.from_object('application.settings')

Sin embargo, esto no es adecuado para un entorno de producción.

Entorno de producción

Personalmente, elegí Nginx + uWSGI sobre Apache + mod_wsgi por algunas razones de rendimiento, pero también por las opciones de configuración. La opción de recarga táctil le permite especificar un archivo / carpeta que hará que la aplicación uWSGI recargue su aplicación de matraz recién implementada.

Por ejemplo, su script de actualización extrae los cambios más recientes y toca el archivo ‘reload_me.txt’. Su script uWSGI ini (que Supervisord mantiene, obviamente) tiene esta línea en alguna parte:

touch-reload = '/opt/virtual_environments/application/reload_me.txt'

¡Espero que esto ayude!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *