Empecé a aprender Flask para desarrollar aplicaciones web. Lo que realmente me falta es una actualización automática del navegador después de cualquier cambio de código (incluidos archivos estáticos, plantillas, etc.). Esta parece ser una característica estándar en casi cualquier marco de Javascript. La gente de frontend tiene varios términos para eso: recarga / actualización automática, recarga / actualización en caliente (hotreload), recarga / actualización en vivo (livereload), ...
Aquí en Stackoverflow, la mayoría de las preguntas similares están relacionadas con la recarga automática del servidor Flask (--> https://stackoverflow.com/search?q=flask+auto+reload ).
J solo quiero una actualización simple del navegador.
Busqué en Google e intenté varias cosas, sin suerte:
¿Cómo puedo tener una experiencia de desarrollo fluida con Flask sin tener que presionar la tecla F5 1000 veces al día en un navegador solo para ver los resultados de mis cambios?
Creo que la respuesta está cerca de python-livereload desde el enlace de arriba. Así que supongo que un título alternativo de mi pregunta podría ser:
¿Alguien tiene un ejemplo funcional de Flask + python-livereload?
Soy demasiado tonto para obtenerlo de su documentación :)
EDITAR: para completar, aquí está la aplicación Flask que estoy usando.
# filename: main.py from flask import Flask, render_template from livereload import Server app = Flask(__name__) @app.route('/') def index(): return "INDEX" @app.route('/bart') def use_jinja(): return render_template('basic.html') if __name__ == '__main__': server = Server(app.wsgi_app) server.serve(port=5555)Comienzo la aplicación con
python main.pyEsta es una pregunta interesante que ha planteado, así que construí una aplicación Flask rápida y sucia que utiliza la biblioteca livereload. A continuación se enumeran los pasos clave para que esto funcione:
Descargue e instale la biblioteca livereload:
pip install livereload
Dentro de su archivo principal que inicia su aplicación de matraz, run.py en mi caso particular, envuelva la aplicación de matraz con la clase de Server proporcionada por livereload.
Por ejemplo, mi archivo run.py se parece a lo siguiente:
from app import app from livereload import Server if __name__ == '__main__': server = Server(app.wsgi_app) server.serve()Inicie su servidor de nuevo:
python run.py
Navegue a localhost en el navegador y sus cambios de código se actualizarán automáticamente. Para mí, tomé el puerto predeterminado de 5500 provisto por livereload, por lo que mi URL se ve así: http://localhost:5500/ .
Con esos pasos, ahora debería poder aprovechar las recargas automáticas para su desarrollo de python, similar a lo que proporciona el paquete web para la mayoría de los marcos frontend.
Para completar el código base se puede encontrar aquí
¡Espero que eso ayude!
Si en Windows:
set FLASK_ENV=development