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

Pourquoi mon serveur de développement Flask semble-t-il démarrer deux fois ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-15 15:31:10222parcourir

Why Does My Flask Dev Server Appear to Start Twice?

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!

Déclaration:
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