ホームページ >バックエンド開発 >Python チュートリアル >Flask 開発サーバーが 2 回実行されているように見えるのはなぜですか?

Flask 開発サーバーが 2 回実行されているように見えるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 16:57:10334ブラウズ

Why Does My Flask Dev Server Seem to Run Twice?

Flask 開発サーバーが 2 回実行されるように見える理由

Flask では、Werkzeug ライブラリが開発サーバーに app.run() を提供します。 Werkzeug はコードが更新されるたびにリローダーを利用してプロセスを再起動します。このリローダーは子プロセスを生成し、subprocess.call() を使用してスクリプトを再度実行します。

開発サーバーを実行すると、スクリプトは元のプロセスと子プロセスの両方によって実行され、重複した印刷行。

リローダーの無効化

余分な実行を排除するには、次のようにします。 app.run() で use_reloader を False に設定してリローダーを無効にします。これにより、自動リロードが防止されますが、ライブリロード機能も無効になります。

または、--no-reload オプションを指定して flask run コマンドを使用することもできます。

子プロセス

元のプロセスと子プロセスを区別する必要がある場合は、 werkzeug.serving.is_running_from_reloader 関数。子プロセスにいる場合に True を返します。

モジュール グローバルの設定

Web の存続期間全体にわたるモジュール グローバルの設定用サーバーの場合は、@app.before_first_request デコレータの使用を検討してください。このデコレータは、最初のリクエストが受信されたとき、各リロード後に 1 回だけ実行される関数に適用されます。

WSGI サーバーに関する考慮事項

フォークまたは新しいサブプロセスを使用する WSGI サーバー上のアプリケーションでは、before_first_request ハンドラーが、新しいサブプロセスごとに 1 回ずつ、複数回呼び出される可能性があります。プロセス。

以上がFlask 開発サーバーが 2 回実行されているように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。