Flask启动开发服务器

Flask通过依赖包 Click 内置了一个CLI(命令行交互界面)系统,当安装flask后, 会自动添加一个flask命令脚本。 我们可以通过flask命令执行内置命令、扩展提供的命令和自定义的命令。

flask run 命令是内置命令,用来启动内置的开发服务器,开发服务器默认会监听http://127.0.0.1:5000/地址,并开启多线程支持。 旧的启动开发服务器的方式是使用app.run()方法,目前已不推荐使用。

若要配置外网访问,可以在run命令后添加--host 选项: flask run --host=0.0.0.0

一般来说,在执行flask run命令运行程序前,需要提供程序实例所在模块的位置。在上面可以直接运行程序,是因为Flask会自动探测程序实例,目前自动探测存在下面这些规则:

  1. 从当前目录寻找app.pywsgi.py模块,并从中寻找名为appapplication的程序实例;
  2. 从环境变量FLASK_APP对应的值寻找名为appapplication的程序实例;除此之外,也会寻找名为create_app()make_app()的工厂函数,自动调用工厂函数创建程序实例并运行;
  3. 如果安装了python-dotenv,那么使用flask run命令或其他命令时,会自动从.flaskenv.env文件中加载环境变量;

当安装了python-dotenv时,Flask在加载环境变量的优先级是:手动设置的环境变量>.env中设置的环境变量>.flaskenv设置的环境变量

为了区分程序运行环境,Flask提供了一个FLASK_ENV环境变量用来设置环境,默认为production(生产)。我们可以在.flaskenv中将其修改 为development.

在开发环境下,调试模式将会自动开启,这时执行flask run启动程序会激活Werkzeug内置的调试器(debugger)和重载器(reloader).

调试器

Werkzeug提供的调试器非常强大,当程序出错时,我们可以在网页上看到详细的错误追踪信息,并允许在错误页面上执行Python代码。 输入PIN码后,我们可以单击错误堆栈的某个节点右侧的命令行界面图标,这会打开一个包含 代码执行上下文信息的Python Shell,我们可以利用它来进行调试。

如果想单独控制调试模式的开关,可以通过FLASK_DEBUG环境变量设置,设为1则开启,设为0则关闭。一般不推荐设置。

重载器

当对代码做了修改后,期望的行为是这些改动立刻作用到程序上。重载器的作用就是监测文件变动,然后重新启动开发服务器。 默认会使用Werkzeug内置的stat重载器,它的缺点是准确性一般。为了获得更优秀的体验,我们可以安装另一个用于监测文件变动的Python库Watchdog,安装后Werkzeug会自动使用它来监测文件变动:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章