Wie kann man Flask von der Initialisierung zweimal im Debug-Modus stoppen?

Beim Erstellen eines Flask-Dienstes in Python und beim Einstellen des Debug-Modus wird der Flask-Dienst zweimal initialisiert. Wenn die Initialisierung Caches und dergleichen lädt, kann dies eine Weile dauern. Dies zu tun, zweimal zu tun ist ärgerlich, wenn in der Entwicklung (Debug) -Modus. Wenn das Debugging ausgeschaltet ist, initialisiert der Flask-Dienst nur einmal.

Wie kann man Flask von der Initialisierung zweimal im Debug-Modus stoppen?

  • Flasche add_url_rule mit Optionen wirft unerwartete Keyword-Argumente aus
  • Führen Sie während der Schleife gleichzeitig mit Flask-Server
  • Wie viele gleichzeitige Anfragen erhält ein einziger Flaschenprozess?
  • Werkzeug.security generate_password_hash Alternative ohne SHA-1
  • Flasche steckbare Ansichten und Anmeldung erforderlich
  • Mit Anfragen Modul in Flasche Route Funktion
  • "TypeError": 'list' Objekt ist kein kalkulierbarer Flasche
  • Der beste Weg, um Flask-Login's login_required die Voreinstellung zu machen
  • 2 Solutions collect form web for “Wie kann man Flask von der Initialisierung zweimal im Debug-Modus stoppen?”

    Die einfachste Sache hier zu tun wäre, use_reloader=False zu deinem Aufruf zu app.run – das heißt: app.run(debug=True, use_reloader=False)

    Alternativ können Sie den Wert von WERKZEUG_RUN_MAIN in der Umgebung überprüfen:

     if os.environ.get("WERKZEUG_RUN_MAIN") == "true": # The reloader has already run - do what you want to do here 

    Allerdings ist die Bedingung ein bisschen mehr gewunden, wenn man das Verhalten irgendwann ausführen will, außer im Ladevorgang:

     if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true": # The app is not in debug mode or we are in the reloaded process 

    Sie können den before_first_request Haken verwenden:

     @app.before_first_request def initialize(): print "Called only once, when the first request comes in" 
    Python ist die beste Programmiersprache der Welt.