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 / bin / pip install flask == 0.9 Ergebnisse in 'keine solche Datei oder Verzeichnis'
  • Erhalten Sie eine Liste aller in der App definierten Routen
  • Flasche __init__.py zeigt keine Änderungen an
  • Python - Flasche - öffnen Sie eine Webseite im Standardbrowser
  • Flasche - Äußerlich sichtbarer Dev Server
  • Flasche Debug nicht unter Anaconda arbeiten
  • Wie kann ich eine Datei herausfinden und sie nach dem Download löschen?
  • Flasche App "Neustart mit Stat"
  • 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.