Table des matières

, , , ,

:TODO_DOCUPDATE:

Flask: extension Flask-Maintenance

L'extensions Flask-Maintenance permet de bloquer temporairement les requêtes entrantes (frontend).

Pour illustrer son fonctionnement, on utilise ici une application Flask monolithique minimale. Depuis votre environnement virtuel Python :

pip install Flask Flask-Maintenance
Au moment de l'écriture de cette note, le package Flask-Maintenance 0.0.1 provoquait une erreur systématique au démarrage de l'application Flask (Flask 3.1). Un correctif a été proposé au développeur principal du package (Pull Request) mais n'a pas encore été intégré.

En attendant on peut remplacer les fichiers du paquetage dans l'environnement virtuel par ceux corrigés voir README.txt dans la section sources proposées ci-dessous.

app.py
"""
Application Flask monolithique contenue dans un module python.
Adaptée aux tests et preuves de concepts.
Nom :  app.py ou wsgi.py
 
"""
 
from flask import Flask, render_template
from flask_maintenance import Maintenance
 
app= Flask(__name__)
Maintenance(app)
 
@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"
 
 
@app.errorhandler(503)
def under_maintenance(e):
    return render_template('503.html'), 503

Pour activer/désactiver le mode maintenance on utilise la CLI :

flask maintenance enable
flask maintenance disable

Lorsque le mode maintenance est actif un fichier under_maintenance est présent dans le dossier ./instance de l'application Flask. Toutes les requêtes sont interceptées et redirigées vers le contrôleurl d'l.

Sources

L'application Flask minimale et les fichiers corrigés de l'extension Flask-Maintenance

Références