1. ホーム
  2. python

[解決済み] デバッグモードでFlaskが2回初期化されないようにするには?重複

2022-05-16 03:41:54

質問

PythonでFlaskのサービスを構築し、デバッグモードをONにすると、Flaskのサービスは2回初期化されます。初期化でキャッシュなどを読み込むと、しばらく時間がかかることがあります。開発(デバッグ)モードでは、これを2回行わなければならないのは煩わしいです。デバッグをオフにすると、Flaskサービスは1回だけ初期化されます。

デバッグモードでFlaskが2回初期化されるのを止めるには?

どうすれば解決しますか?

最も簡単な方法は、このページに use_reloader=False への呼び出しに app.run - というのは app.run(debug=True, use_reloader=False)

別の方法として、値をチェックするために WERKZEUG_RUN_MAIN の値を確認することもできます。

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

しかし、いつでも動作が起こるようにしたい場合、条件はもう少し複雑になります。 を除いて を除いて、いつでも動作させたい場合には、条件は少し複雑になります。

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