開発サーバー—Flaskドキュメント

提供:Dev Guides
< FlaskFlask/docs/2.0.x/server
移動先:案内検索

開発サーバー

Flaskは、開発サーバーでアプリケーションを実行するためのrunコマンドを提供します。 開発モードでは、このサーバーは対話型デバッガーを提供し、コードが変更されるとリロードします。

警告

本番環境にデプロイするときは、開発サーバーを使用しないでください。 これは、ローカル開発中にのみ使用することを目的としています。 特に効率的、安定的、または安全になるようには設計されていません。

展開オプションについては、展開オプションを参照してください。


コマンドライン

flask runコマンドラインスクリプトは、開発サーバーを実行するための推奨される方法です。 アプリケーションを指すようにFLASK_APP環境変数を設定し、開発モードを完全に有効にするにはFLASK_ENV=developmentを設定する必要があります。

これにより、対話型デバッガーとリローダーを含む開発環境が有効になり、 http:// localhost:5000 / でサーバーが起動します。 flask run --helpを使用して使用可能なオプションを確認し、コマンドラインインターフェイスを使用してCLIの構成と使用に関する詳細な手順を確認してください。

ノート

Flask 1.0より前は、FLASK_ENV環境変数はサポートされていなかったため、FLASK_DEBUG=1をエクスポートしてデバッグモードを有効にする必要がありました。 これは引き続きデバッグモードの制御に使用できますが、上記のように開発環境を設定することをお勧めします。


遅延または熱心な読み込み

リローダーでflask runコマンドを使用すると、コードに構文エラーやその他の初期化エラーが発生した場合でも、サーバーは実行を継続します。 サイトにアクセスすると、サーバーがクラッシュするのではなく、エラーの対話型デバッガーが表示されます。 この機能は「遅延読み込み」と呼ばれます。

flask runの呼び出し時に構文エラーがすでに存在する場合、サイトにアクセスするまで待つのではなく、すぐに失敗してトレースバックが表示されます。 これは、サーバーがリロード時にエラーを処理できるようにしながら、最初はエラーをより目立たせることを目的としています。

この動作をオーバーライドし、リロード時でも常にすぐに失敗するには、--eager-loadingオプションを渡します。 最初の呼び出しでもサーバーを常に実行し続けるには、--lazy-loadingを渡します。


コード内

flask runコマンドの代わりに、Flask.run()メソッドを使用してPythonから開発サーバーを起動することもできます。 このメソッドは、CLIオプションと同様の引数を使用してサーバーを制御します。 CLIコマンドとの主な違いは、リロード時にエラーが発生するとサーバーがクラッシュすることです。

debug=Trueを渡してデバッガーとリローダーを有効にすることができますが、開発モードを完全に有効にするには、FLASK_ENV=development環境変数が必要です。

呼び出しをメインブロックに配置します。そうしないと、後で本番サーバーでアプリケーションをインポートして実行しようとしたときに干渉します。

if __name__ == "__main__":
    app.run(debug=True)
$ python hello.py