開発サーバ Development Server¶
Flask provides a run
command to run the application with a
development server. In development mode, this server provides an
interactive debugger and will reload when code is changed.
警告
Do not use the development server when deploying to production. It is intended for use only during local development. It is not designed to be particularly efficient, stable, or secure.
See 展開の選択肢(Deployment Options) for deployment options.
コマンドライン Command Line¶
The flask run
command line script is the recommended way to run the
development server. It requires setting the FLASK_APP
environment
variable to point to your application, and FLASK_ENV=development
to
fully enable development mode.
$ export FLASK_APP=hello
$ export FLASK_ENV=development
$ flask run
> set FLASK_APP=hello
> set FLASK_ENV=development
> flask run
> $env:FLASK_APP = "hello"
> $env:FLASK_ENV = "development"
> flask run
この例ではインタラクティブなデバッガと再読み込み機能(reloader)を含む、開発環境を有効にし、それからhttp://localhost:5000でサーバを開始します。利用可能なオプションを見るにはflask run --help
を使用し、CLIの仕様や設定についての指示(instructions)の詳細はコマンドライン・インタフェースを使用してください。
This enables the development environment, including the interactive debugger and reloader, and then starts the server on http://localhost:5000/. Use ``flask run --help`` to see the available options, and :doc:`/cli` for detailed instructions about configuring and using the CLI.
注釈
Flask 1.0より前は、FLASK_ENV
環境変数はサポートされておらず、デバッグモードを有効にするにはFLASK_DEBUG=1
をexportする必要がありました。これは今でもデバッグモードの制御に使用可能ですが、上述した開発環境の設定の方が好ましいものです。
Prior to Flask 1.0 the ``FLASK_ENV`` environment variable was not supported and you needed to enable debug mode by exporting ``FLASK_DEBUG=1``. This can still be used to control debug mode, but you should prefer setting the development environment as shown above.
Lazy or Eager Loading¶
When using the flask run
command with the reloader, the server will
continue to run even if you introduce syntax errors or other
initialization errors into the code. Accessing the site will show the
interactive debugger for the error, rather than crashing the server.
This feature is called "lazy loading".
If a syntax error is already present when calling flask run
, it will
fail immediately and show the traceback rather than waiting until the
site is accessed. This is intended to make errors more visible initially
while still allowing the server to handle errors on reload.
To override this behavior and always fail immediately, even on reload,
pass the --eager-loading
option. To always keep the server running,
even on the initial call, pass --lazy-loading
.
コードの中 In Code¶
As an alternative to the flask run
command, the development server
can also be started from Python with the Flask.run()
method. This
method takes arguments similar to the CLI options to control the server.
The main difference from the CLI command is that the server will crash
if there are errors when reloading.
debug=True
can be passed to enable the debugger and reloader, but
the FLASK_ENV=development
environment variable is still required to
fully enable development mode.
Place the call in a main block, otherwise it will interfere when trying to import and run the application with a production server later.
if __name__ == "__main__":
app.run(debug=True)
$ python hello.py