gpt4 book ai didi

python - current_app 和 g 上下文变量有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:05 25 4
gpt4 key购买 nike

current_appg 都是应用程序上下文变量,因此它们会随着每个请求加载和卸载,因此存储在它们上的任何数据都只能在同一个请求中使用.

我能看到的唯一区别是 g 在每个请求的开头都是空的,而 current_app 以一些属性开头(比如 config) 从应用程序对象复制。但这根本不能证明拥有 g 对象是合理的,因为可以很容易地将新信息存储在 current_app 上。

有什么我看不到的区别?

最佳答案

我相信您阅读了 g 上的文档和 current_app .所以我可以从中理解:

current_app:

Points to the application handling the request. This is useful for extensions that want to support multiple applications running side by side.

[强调我的]

所以你正在获取当前应用程序的上下文,而 g 存储所有内容,来自 source code :

def _lookup_app_object(name):
top = _app_ctx_stack.top
if top is None:
raise RuntimeError(_app_ctx_err_msg)
return getattr(top, name)

def _find_app():
top = _app_ctx_stack.top
if top is None:
raise RuntimeError(_app_ctx_err_msg)
return top.app

current_app = LocalProxy(_find_app)
g = LocalProxy(partial(_lookup_app_object, 'g'))

因此,如果您正在运行多个应用程序,current_app 将引用当前应用程序(显而易见,对),而 g 将引用所有内容。

关于python - current_app 和 g 上下文变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40881750/

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