開発サーバー
Flask 0.11以降、開発サーバーを実行するための複数の組み込み方法があります。 最適なのは flask コマンドラインユーティリティですが、Flask.run()
メソッドを引き続き使用することもできます。
コマンドライン
flask コマンドラインスクリプト(コマンドラインインターフェイス)は、アプリケーションの読み込み方法によって優れたリロードエクスペリエンスを提供するため、開発に強くお勧めします。 基本的な使用法は次のとおりです。
$ export FLASK_APP=my_application
$ export FLASK_ENV=development
$ flask run
これにより、対話型デバッガーとリローダーを含む開発環境が有効になり、 http:// localhost:5000 / でサーバーが起動します。
サーバーの個々の機能は、run
オプションにさらに引数を渡すことで制御できます。 たとえば、リローダーを無効にすることができます。
$ flask run --no-reload
ノート
Flask 1.0より前は、 FLASK_ENV
環境変数はサポートされていなかったため、FLASK_DEBUG=1
をエクスポートしてデバッグモードを有効にする必要がありました。 これは引き続きデバッグモードの制御に使用できますが、上記のように開発環境を設定することをお勧めします。
コード内
アプリケーションを起動する別の方法は、Flask.run()
メソッドを使用することです。 これにより、 flask スクリプトとまったく同じ方法でローカルサーバーがすぐに起動します。
例:
if __name__ == '__main__':
app.run()
これは一般的なケースではうまく機能しますが、開発ではうまく機能しません。そのため、Flask0.11以降では flask メソッドが推奨されます。 これは、リロードメカニズムの動作により、奇妙な副作用が発生するためです(特定のコードを2回実行したり、メッセージなしでクラッシュしたり、構文エラーやインポートエラーが発生したときに停止したりすることがあります)。
ただし、これは、自動リロード以外のアプリケーションを呼び出すための完全に有効な方法です。