Questions tagged «flask»

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 …
13 python  flask 

3
全局请求上下文-反模式?
今天我在和我的一位同事谈论Python Web框架以及我们对它们的印象。我告诉他,我认为Flask具有全局请求的气味很难闻,并且是一种反模式。 该文档说关于请求上下文: 相反,在请求处理期间,存在其他一些规则: 当请求处于活动状态时,上下文本地对象(flask.request和其他对象)指向当前请求。 任何代码都可以随时获取这些对象。 我认为我了解此设计决策背后的想法-使应用程序更简单。这只是一个折衷,就像在Thread Locals的情况下: 是的,使用线程本地化通常不是一个好主意。它们给不基于线程概念的服务器造成麻烦,并使大型应用程序难以维护。但是Flask并不是专门为大型应用程序或异步服务器设计的。Flask希望使其能够轻松快捷地编写传统的Web应用程序。 使用当前请求信息修补全局对象是否是反模式? 我相信是这样,因为从静态代码分析器的角度来看,它是一个全局状态,尽管事实并非如此。作为程序员,如果不仔细阅读文档,我将无法理解其工作原理。这对测试有影响。 将请求作为参数传递给视图不是一个好习惯吗?我认为它更具可读性,明确性且易于调试。并避免全局状态。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.