我想要一些关于在部署Flask应用程序(例如,使用gunicorn)时如何执行代码的信息。在
例如,假设我在views.py
中有以下内容:
foo = [2, 9, 3, 23, 45, 9]
foo.sort()
@app.route('/')
def index():
return render_template('base.html', foo=foo)
foo
何时排序?服务器启动时只有一次?每次有人提出要求?还有别的事吗?在
before_first_request
和{
你能一步一步地解释(例如,先发生A,然后B,然后C)或指出一个在线资源,请?在
你要问的问题是,当发生在烧瓶上游的事件时会发生什么……比如古尼康启动时。在
烧瓶是一个Web Server Gateway Interface (WSGI) application framework。WSGI是一个特定于Python的框架,它定义了web服务器如何与应用程序交互。(Java的等价物是Java servlet。) 服务器将使用Python的WSGI协议在适当的时候调用Flask。deploying a standalone WSGI application上的Flask文档展示了如何手动设置它,并让您对Flask上游的情况有一点了解。 关于Gevent的部分很有用,因为它显式地显示了
yourapplication
的import语句及其与HTTP服务器的关系:source code for gunicorn显示了类似的方法,每个工作线程加载一次WSGI应用程序,然后无限期地运行。在
。。。Flask的应用程序上下文
但是,您可能正在寻找一种方法来创建一些新的变量,实例化一个新的数据库连接,或者建立一个唯一的会话cookie,每次处理请求时都会发生这种情况,而不仅仅是在加载应用程序代码时。为此,你应该看看烧瓶的application context。引自引文:
相关问题 更多 >
编程相关推荐