Flask 上下文如何工作

如果你研究 Flask WSGI 应用内部如何工作,你会找到和这非常相似的一段代码:

def wsgi_app(self, environ):
    with self.request_context(environ):
        try:
            response = self.full_dispatch_request()
        except Exception, e:
            response = self.make_response(self.handle_exception(e))
        return response(environ, start_response)

request_context() 方法返回一个新的
RequestContext 对象,并结合 with 声明来绑定上下文。
从相同线程中被调用的一切,直到 with 声明结束前,都可以访问全局的请求
变量( flask.request 和其它)。

请求上下文内部工作如同一个栈。栈顶是当前活动的请求。
push() 把上下文添加到栈顶,
pop() 把它移出栈。在出栈时,应用的
teardown_request() 函数也会被执行。

另一件需要注意的事是,请求上下文被压入栈时,并且没有当前应用的应用上下文,
它会自动创建一个 应用上下文

作者:andy,如若转载,请注明出处:https://www.web176.com/flask2/21698.html

(0)
打赏 支付宝 支付宝 微信 微信
andy的头像andy
上一篇 2023年5月18日
下一篇 2023年5月18日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注