开发服务器

从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()

在一般情况下效果良好,但在开发方面效果不佳,正是基于这个原因自 Flask 0.11 版开始推荐使用 flask 方法。这是因为重载的工作机制有一些奇怪的副作用(例如,执行某些代码两次,有时在没有消息的情况下崩溃,或者在发生语法或导入错误时死机)。

但是,对于调用非自动重新加载应用程序,它仍然是一个完全有效的方法。