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 découle 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ésactivez 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 lors du rechargement processus enfant, 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.
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!