Live reloading for Flask applications during development.
Project description
Flask-LiveReload
Una extensión de Flask que proporciona recarga en vivo de las páginas web cuando los archivos de plantilla o estáticos cambian. Ideal para acelerar el desarrollo al eliminar la necesidad de recargar manualmente el navegador después de cada cambio.
🌟 Características
- 🔄 Recarga automática: Monitorea los directorios
templatesystaticen busca de cambios en los archivos. - ⚡ Integración sencilla: Se integra fácilmente en cualquier aplicación Flask.
- 🚀 Ligera: Solo depende de Flask y watchdog, sin dependencias externas pesadas.
- 📡 Eficiente: Utiliza Server-Sent Events (SSE) para notificar al navegador de los cambios.
- 🔧 Configurable: Soporte para patrones personalizados de observación e ignorar archivos.
- 🛡️ Robusta: Manejo de errores mejorado y logging detallado.
📦 Instalación
Puedes instalar Flask-LiveReload directamente desde PyPI usando pip:
pip install Flask-LiveReload
🚀 Uso
Configuración Básica
Para empezar a usar Flask-LiveReload, simplemente importa la clase LiveReload y pásale tu aplicación Flask.
from flask import Flask, render_template
from flask_livereload import LiveReload
app = Flask(__name__)
app.debug = True # ⚠️ IMPORTANTE: Solo funciona en modo debug
livereload = LiveReload(app)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Configuración Avanzada
Puedes personalizar qué archivos observar e ignorar:
from flask import Flask, render_template
from flask_livereload import LiveReload
app = Flask(__name__)
app.debug = True
# Configurar patrones personalizados
app.config["LIVERELOAD_WATCH_PATTERNS"] = [
"statics/**/*.html",
"statics/**/*.js",
"statics/**/*.css",
"templates/**/*.html",
]
app.config["LIVERELOAD_IGNORE_PATTERNS"] = [
"__pycache__",
".venv",
".git",
".pytest_cache",
"*.pyc",
"*.pyo",
"*.log",
".DS_Store",
"node_modules",
]
livereload = LiveReload(app)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
🧠 ¿Cómo funciona?
Flask-LiveReload inyecta un pequeño script de JavaScript en tus páginas HTML. Este script se conecta a un endpoint de Server-Sent Events (SSE) en /_livereload. En el lado del servidor, un observador de archivos monitorea los directorios configurados. Cuando se detecta un cambio, se envía un mensaje al navegador a través del SSE, lo que provoca que la página se recargue.
⚙️ Configuración
Variables de Entorno
# Nivel de logging (DEBUG, INFO, WARNING, ERROR)
export LOG_LEVEL=INFO
Opciones de Configuración de Flask
# Patrones de archivos a observar (opcional)
app.config["LIVERELOAD_WATCH_PATTERNS"] = [
"statics/**/*.html", # Todos los HTML en statics y subdirectorios
"statics/**/*.js", # Todos los JS en statics y subdirectorios
"templates/**/*.html", # Todos los HTML en templates y subdirectorios
]
# Patrones de archivos a ignorar (opcional)
app.config["LIVERELOAD_IGNORE_PATTERNS"] = [
"__pycache__",
".venv",
".git",
"*.pyc",
"node_modules",
]
🐛 Solución de Problemas
Problemas Comunes
-
No se recarga automáticamente:
- Verifica que
app.debug = True - Revisa los logs para errores
- Asegúrate de que los archivos estén en los directorios correctos
- Verifica que
-
Error de importación:
- Verifica que el paquete esté instalado correctamente
- Asegúrate de usar el token correcto si es un repositorio privado
-
Problemas con patrones:
- Los patrones usan sintaxis glob
- Usa
./para rutas relativas al directorio de la aplicación
Logging
Habilita logging detallado para debugging:
export LOG_LEVEL=DEBUG
📚 Documentación Adicional
Para ejemplos más detallados y guías de uso, consulta:
examples/README.md- Guía completa de usoexamples/local_development_guide.md- Desarrollo localexamples/standalone_example.py- Ejemplo básicoexamples/custom_watch_patterns_example.py- Ejemplo con patrones personalizados
🤝 Contribuciones
Las contribuciones son bienvenidas. Si tienes alguna idea, sugerencia o informe de error, por favor abre un issue o envía un pull request.
📄 Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flask_livereload-0.2.2.tar.gz.
File metadata
- Download URL: flask_livereload-0.2.2.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed60f6932e5ccd3a73aa7ce6ba326aaf3c7a7265a0cbda14c356efa5068d1f53
|
|
| MD5 |
be923dc37175ee8401269d757502b343
|
|
| BLAKE2b-256 |
1429fb149930f99c8e6589e17757294503cfc1c12c706a809e5821fc9009023c
|
File details
Details for the file flask_livereload-0.2.2-py3-none-any.whl.
File metadata
- Download URL: flask_livereload-0.2.2-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9dfa258f407c269f28b156b81417a43c53c03d393dd60cfc99d7fa07808ace1c
|
|
| MD5 |
cd56de0b6ef5809f3baf5c93a0251aa5
|
|
| BLAKE2b-256 |
75f6bca202b6e9d9e8df62962014b1c0fc231238afe06b255956e288c2632d1c
|