Warum Flask Dev Server während der Entwicklung zweimal ausgeführt wird
Beim Ausführen des Flask Dev Servers bemerken Benutzer möglicherweise, dass die Startdruckzeile zweimal angezeigt wird. Dieses Verhalten ist auf die Verwendung des Reloaders von Werkzeug zurückzuführen, der einen untergeordneten Prozess erstellt, um Aktualisierungen bei Codeänderungen zu ermöglichen.
Initiierung des Reloaders
Die Flask-App wird mit ausgeführt die Methode app.run(), die intern den Entwicklungsserver von Werkzeug nutzt. Die Funktion restart_with_reloader() startet einen untergeordneten Prozess, wodurch das Skript mit subprocess.call() erneut ausgeführt wird.
Automatisches Neuladen deaktivieren
Um den Doppeldruck zu unterdrücken , setze use_reloader in app.run() auf False. Alternativ können Sie den Befehl „flask run“ mit dem Flag „--no-reload“ verwenden:
FLASK_DEBUG=1 flask run --no-reload
Nachladeerkennung
Um festzustellen, ob die App im neu ladenden untergeordneten Prozess ausgeführt wird, verwenden Sie den werkzeug.serving.is_running_from_reloader function.
Alternative für Modul-Globals
Wenn Modul-Globals eingerichtet werden müssen, verwenden Sie den @app.before_first_request-Dekorator, um eine Funktion zu erstellen, die wird nur einmal nach jedem Neuladen auf die erste Anfrage ausgeführt. Beachten Sie jedoch, dass dieser Ansatz zu mehreren Aufrufen auf WSGI-Servern führen kann, die mehrere Prozesse nutzen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3