Comment empêcher Flask d'initialiser deux fois en mode Debug?
lors de la construction d'un service Flask en Python et de la mise en mode déboguage, le service Flask s'initialise deux fois. Lorsque l'initialisation charge des caches et autres, cela peut prendre un certain temps. Avoir à le faire deux fois est ennuyeux en mode développement (debug). Lorsque le débogage est désactivé, le service de flasque n'initialise qu'une seule fois.
comment empêcher Flask de s'initialiser deux fois en mode débogage?
2 réponses
la chose La plus simple à faire ici serait d'ajouter use_reloader=False
à ton appel app.run
- qui est: app.run(debug=True, use_reloader=False)
Alternativement, vous pouvez vérifier la valeur de WERKZEUG_RUN_MAIN
dans l'environnement:
if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
# The reloader has already run - do what you want to do here
cependant, la condition est un peu plus alambiquée quand vous voulez que le comportement se produise à tout moment sauf dans le processus de chargement:
if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true":
# The app is not in debug mode or we are in the reloaded process
vous pouvez utiliser le before_first_request
crochet:
@app.before_first_request
def initialize():
print "Called only once, when the first request comes in"