gpt4 book ai didi

python - 如何理解flask的这段代码?

转载 作者:太空狗 更新时间:2023-10-29 21:07:49 25 4
gpt4 key购买 nike

谁能解释一下这行?

g = LocalProxy(lambda: _request_ctx_stack.top.g) 

来自 flask 的代码

from werkzeug import LocalStack, LocalProxy

# context locals
_request_ctx_stack = LocalStack()
current_app = LocalProxy(lambda: _request_ctx_stack.top.app)
request = LocalProxy(lambda: _request_ctx_stack.top.request)
session = LocalProxy(lambda: _request_ctx_stack.top.session)
g = LocalProxy(lambda: _request_ctx_stack.top.g)

本地代码在这里:http://pastebin.com/U3e1bEi0

最佳答案

Werkzeug documentation对于 LocalStack 和 LocalProxy 可能有所帮助,以及对 WSGI 的一些基本了解.

看起来正在发生的事情是创建了一个全局(但为空)堆栈 _request_ctx_stack。这适用于所有线程。一些 WSGI 风格的对象(current_apprequestsessiong)被设置为使用 top item在全局堆栈中。

在某个时候,一个或多个 WSGI 应用程序被推送到全局堆栈中。然后,例如,当在运行时使用 current_app 时,将使用当前的顶级应用程序。如果堆栈从未初始化,则 top 将返回 None 并且您将得到一个异常,如 AttributeError: 'NoneType' object has no attribute 'app'

关于python - 如何理解flask的这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com