Pourquoi le serveur de développement Flask s'exécute deux fois pendant le développement
Lors de l'exécution du serveur de développement Flask, les utilisateurs peuvent remarquer que la ligne d'impression de départ s'affiche deux fois. Ce comportement provient de l'utilisation du reloader de Werkzeug, qui crée un processus enfant pour faciliter les mises à jour lorsque le code change.
Initiation du Reloader
L'application Flask est exécutée avec la méthode app.run(), qui utilise en interne le serveur de développement de Werkzeug. La fonction restart_with_reloader() lance un processus enfant, provoquant la réexécution du script avec subprocess.call().
Désactiver le rechargement automatique
Pour supprimer la double impression , définissez use_reloader sur False dans app.run(). Vous pouvez également utiliser la commande flask run avec l'indicateur --no-reload :
FLASK_DEBUG=1 flask run --no-reload
Détection du rechargement
Pour vérifier si l'application est en cours d'exécution dans le processus enfant de rechargement, utilisez le werkzeug.serving.is_running_from_reloader function.
Alternative pour les modules globaux
Si les modules globaux doivent être configurés, utilisez le décorateur @app.before_first_request pour créer une fonction qui ne sera exécutée qu'une seule fois après chaque rechargement, à la première demande. Notez toutefois que cette approche peut conduire à plusieurs appels sur les serveurs WSGI utilisant plusieurs processus.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3