1
为什么建议在Flask.run上使用flask CLI?
在Flask 0.11中flask,引入了CLI。docs和changelog都建议这样做。 开发服务器文档: 从Flask 0.11开始,有多种内置方法来运行开发服务器。最好的一个是flask命令行实用程序,但是您也可以继续使用该Flask.run()方法。 命令行 强烈建议使用flask命令行脚本(命令行界面)进行开发,因为由于其加载应用程序的方式,它提供了卓越的重新加载体验。基本用法是这样的: $ export FLASK_APP=my_application $ export FLASK_DEBUG=1 $ flask run 更新日志: 添加flask了flask.cli用于通过单击CLI系统启动本地调试服务器的模块。与旧flask.run()方法相比,建议使用此方法,因为它采用不同的设计,因此可以更快,更可靠地工作,并且可以替代Flask-Script。 到目前为止,我还没有注意到这种“高级重装体验”。我看不到在自定义脚本上使用CLI的意义。 如果使用Flask.run,我只需编写一个python文件: #!/usr/bin/env python3 from my_app import app if __name__ == '__main__': app.run(debug=True) 如果使用CLI,则必须指定环境变量。在CLI文档中声明可以将其集成到activatevirtualenvwrapper脚本中。我个人认为这是应用程序的一部分,并认为它应该在版本控制下。las,需要一个shell脚本: #!/usr/bin/env bash export FLASK_APP=my_app:app export FLASK_DEBUG=1 flask run 当然,任何Windows用户开始协作后,都将附带一个附加的bat脚本。 同样,第一个选项允许在启动实际应用之前使用Python编写的设置。 例如,这允许 在Python中解析命令行参数 在运行应用程序之前设置日志记录 他们似乎在提倡添加自定义命令。我看不出为什么这比编写简单的Python脚本更好,为什么可以通过入口点公开这些脚本。 通过Python运行脚本使用已配置的记录器时的示例记录输出: $ ./run.py DEBUG …