Heim >Backend-Entwicklung >Python-Tutorial >Warum scheint mein Flask Dev Server zweimal zu starten?
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 das Doppeldrucken 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
Erkennung des Neuladens
Um festzustellen, ob die App beim Neuladen ausgeführt wird Untergeordneter Prozess, verwenden Sie die Funktion werkzeug.serving.is_running_from_reloader.
Alternative für Modul-Globals
Wenn Modul-Globals eingerichtet werden müssen, verwenden Sie den Dekorator @app.before_first_request, um eine Funktion zu erstellen, die nur einmal nach jedem Neuladen bei der ersten Anfrage ausgeführt wird. Beachten Sie jedoch, dass dieser Ansatz zu mehreren Aufrufen auf WSGI-Servern führen kann, die mehrere Prozesse nutzen.
Das obige ist der detaillierte Inhalt vonWarum scheint mein Flask Dev Server zweimal zu starten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!