„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum scheint mein Flask Dev Server zweimal zu starten?

Warum scheint mein Flask Dev Server zweimal zu starten?

Veröffentlicht am 18.01.2025
Durchsuche:739

Why Does My Flask Dev Server Appear to Start Twice?

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.

Neuestes Tutorial Mehr>

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