Maison > développement back-end > Tutoriel Python > Pourquoi mon serveur de développement Flask semble-t-il s'exécuter deux fois ?

Pourquoi mon serveur de développement Flask semble-t-il s'exécuter deux fois ?

DDD
Libérer: 2024-12-09 17:41:19
original
436 Les gens l'ont consulté

Why Does My Flask Development Server Appear to Execute Twice?

Le serveur de développement Flask s'exécute deux fois : dévoiler la raison

Le serveur de développement Flask gère le redémarrage de votre application chaque fois que des modifications sont apportées à votre code . Cette fonctionnalité est fournie par la fonction restart_with_reloader() de la bibliothèque Werkzeug.

Cette fonction génère un processus enfant, exécutant à nouveau votre script à l'aide de subprocess.call(). Par conséquent, le script d'origine et le processus enfant impriment le message de redémarrage une fois chacun, ce qui entraîne le comportement de double impression observé.

Désactivez le rechargement

Pour éliminer ce comportement , désactivez le rechargeur en définissant use_reloader sur False :

Vous pouvez également utiliser la commande flask run avec le --no-reload flag :

Détecter le processus de rechargement

Utilisez la fonction werkzeug.serving.is_running_from_reloader() pour détecter le processus enfant :

Utilisez @app.before_first_request Décorateur

Si vous devez définir des variables globales de module, pensez à utiliser le décorateur @app.before_first_request :

Ce décorateur exécute la fonction une fois après chaque rechargement, lors de la première requête est fabriqué.

Remarque :

En grandeur nature Serveurs WSGI utilisant des forks ou des sous-processus pour gérer les requêtes, les gestionnaires before_first_request peuvent être invoqués pour chaque sous-processus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal