gpt4 book ai didi

python - 为什么我不能在请求到来后使用 flask.g?

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

根据 the Flask 0.12 docs :

flask.g

...... Starting with Flask 0.10 this is stored on the application context and no longer on the request context which means it becomes available if only the application context is bound and not yet a request.

据我所知,当一个请求到来时,一个应用程序上下文将被创建,如果没有的话。那么 flask.g 不应该在请求到来后可用吗,因为请求确保了应用程序上下文的存在?

作为一个悬赏问题:为什么我应该在 g 而不是 request 上存储数据库连接?我知道创建应用程序上下文比创建请求上下文更“昂贵”,但是当请求到来时,无论如何都会创建请求上下文。

最佳答案

那里的措辞有点尴尬。 g 对象在请求期间可用。请求上下文嵌套在应用程序上下文中。

您应该在g 对象中存储一个数据库连接,因为它*即使在没有请求时也是可用的,例如在flask shell 中。命令,以及任何 custom command-line commands .例如,您在初始化数据库时将需要它。

接下来,在一些高级用例中,您可能想要创建一个“内部”请求,在您的 Flask 应用程序上调用另一个路由,就像它来自外部一样。此嵌套请求将重新使用现有的应用上下文。

没有应用程序上下文就没有请求上下文。

关于python - 为什么我不能在请求到来后使用 flask.g?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160770/

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