開発サーバー
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