这两个current_app和g是应用程序上下文变量,所以它们被加载并与每个请求卸载,因此存储在其上的任何数据将只在同一请求中可用。
我可以看到的唯一区别是,g每个请求的开头都是空的,而current_app开头config是从应用程序对象复制的某些属性(例如)。但这根本不能证明拥有g对象,因为可以很容易地在上存储新信息current_app。
我看不到有什么区别?
我相信你在阅读文档g和current_app。所以我可以从中了解到:
current_app:
指向处理请求的应用程序。这对于想要支持并行运行的多个应用程序的扩展很有用。
[强调我的]
因此,您在g从源代码存储所有内容的同时获取当前应用程序的上下文:
Run Code Online (Sandbox Code Playgroud)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所有内容。
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |