开发服务器

烧瓶提供 run 命令,以使用开发服务器运行应用程序。在开发模式下,此服务器提供一个交互式调试器,在代码更改时将重新加载。

警告

部署到生产环境时不要使用开发服务器。仅在当地开发期间使用。它的设计不是特别高效、稳定或安全。

部署选择 部署选项。

命令行

这个 flask run 命令行脚本是运行开发服务器的推荐方法。它需要设置 FLASK_APP 指向应用程序的环境变量,以及 FLASK_ENV=development 全面启用开发模式。

$ 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

这将启用开发环境,包括交互式调试器和重新加载程序,然后在上启动服务器http://localhost:5000/. 使用 flask run --help 查看可用选项,以及 命令行界面 有关配置和使用CLI的详细说明。

注解

烧瓶1.0之前 FLASK_ENV 不支持环境变量,需要通过导出启用调试模式 FLASK_DEBUG=1 . 这仍然可以用于控制调试模式,但是您应该更喜欢如上面所示设置开发环境。

懒散的或急切的装载

当使用 flask run 命令,即使在代码中引入语法错误或其他初始化错误,服务器也将继续运行。访问站点将显示错误的交互式调试器,而不是使服务器崩溃。这个特性被称为“延迟加载”。

如果调用时已经存在语法错误 flask run ,它将立即失败并显示回溯,而不是等待站点被访问。这样做的目的是使错误在一开始更明显,同时仍允许服务器在重新加载时处理错误。

要重写此行为并始终立即失败,即使在重新加载时,也要传递 --eager-loading 选项。要始终保持服务器运行,即使在初始调用时,也要通过 --lazy-loading .

通过代码使用开发服务器

作为 flask run 命令时,也可以使用 Flask.run() 方法。此方法采用类似于CLI选项的参数来控制服务器。与CLI命令的主要区别是,如果重新加载时出现错误,服务器将崩溃。

debug=True 可以传递以启用调试器和重新加载程序,但是 FLASK_ENV=development 完全启用开发模式仍然需要环境变量。

将调用放在主块中,否则在以后尝试导入并使用生产服务器运行应用程序时,它将受到干扰。

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