Flask 開発サーバーが開発中に 2 回実行される理由
Flask 開発サーバーを実行しているときに、ユーザーは開始印刷行が 2 回表示されることに気づく場合があります。この動作は、コード変更時の更新を容易にする子プロセスを作成する Werkzeug のリローダーの使用に起因します。
リローダーの開始
Flask アプリは次のコマンドで実行されます。 app.run() メソッド。内部的に Werkzeug の開発サーバーを利用します。 restart_with_reloader() 関数は子プロセスを起動し、subprocess.call() でスクリプトを再実行します。
自動再読み込みを無効にする
二重印刷を抑制するには、app.run() で use_reloader を False に設定します。あるいは、--no-reload フラグを指定して flask run コマンドを使用します:
FLASK_DEBUG=1 flask run --no-reload
再読み込みの検出
アプリがリロード中の子プロセスで実行されているかどうかを確認するには、 werkzeug.serving.is_running_from_reloader function.
モジュール グローバルの代替
モジュール グローバルを設定する必要がある場合は、@app.before_first_request デコレータを使用して関数を作成します。各リロード後の最初のリクエスト時に 1 回だけ実行されます。ただし、このアプローチでは、WSGI サーバーで複数のプロセスを使用して複数の呼び出しが行われる可能性があることに注意してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3