Heim > Backend-Entwicklung > Python-Tutorial > Warum zeigt mein Flask Dev Server eine doppelte Neustartmeldung an?

Warum zeigt mein Flask Dev Server eine doppelte Neustartmeldung an?

Barbara Streisand
Freigeben: 2024-12-07 15:44:11
Original
638 Leute haben es durchsucht

Why Does My Flask Dev Server Show a Double Restart Message?

Doppelter Neustart-Ausdruck im Flask Dev Server

Beim Ausführen eines Website-Entwicklungsservers mit Flask ist Benutzern ein ungewöhnliches Verhalten beim Neustart des Servers aufgefallen Die Meldung erscheint zweimal statt einmal. Um den Grund dafür zu verstehen, werfen wir einen Blick auf die Mechanik des Entwicklungsservers von Flask.

Flask nutzt Werkzeug, eine WSGI-Dienstprogrammbibliothek, um den Entwicklungsserver über die Methode app.run() zu starten. Werkzeug verwendet eine Technik namens „Reloading“, um den Server automatisch neu zu starten, wenn Änderungen im Code erkannt werden. Beim Neuladevorgang wird ein untergeordneter Prozess erzeugt, der Ihr Flask-Skript mithilfe von subprocess.call() erneut ausführt.

Dieser untergeordnete Prozess setzt denselben Code wie der übergeordnete Prozess voraus, was zur doppelten Ausführung der Neustartmeldung führt. Um dieses Verhalten zu beseitigen, setzen Sie den Parameter use_reloader von app.run() auf False. Alternativ können Sie den Reloader während der Befehlszeilenausführung von Flask deaktivieren:

FLASK_DEBUG=1 flask run --no-reload
Nach dem Login kopieren

Für fortgeschrittene Szenarien, in denen die Erkennung des Vorhandenseins des neu ladenden untergeordneten Prozesses von entscheidender Bedeutung ist, verwenden Sie die Funktion is_running_from_reloader() von Werkzeug. Es ist jedoch ratsam, den @app.before_first_request-Dekorator zum Initialisieren von Modulglobalen zu verwenden, um eine einzelne Ausführung nach jedem Neuladen zu gewährleisten.

@app.before_first_request
def before_first_request():
    print(f"########### Restarted, first request @ {datetime.utcnow()} ############")
Nach dem Login kopieren

Beachten Sie, dass before_first_request-Handler möglicherweise für jeden neuen Unterprozess in vollwertigem WSGI aufgerufen werden Server, die Forking oder neue Unterprozesse verwenden.

Das obige ist der detaillierte Inhalt vonWarum zeigt mein Flask Dev Server eine doppelte Neustartmeldung an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage