gpt4 book ai didi

python - 这个 Flask 代码中的 g 对象是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:06:39 30 4
gpt4 key购买 nike

我发现这段代码对每个响应进行计时,但我不确定 g 应该来自哪里。 g 是什么?

@app.before_request
def before_request():
g.start = time.time()

@app.teardown_request
def teardown_request(exception=None):
diff = time.time() - g.start
print diff

最佳答案

g是 Flask 提供的一个对象。它是一个全局命名空间,用于在单个应用程序上下文中保存您想要的任何数据。例如,before_request 处理程序可以设置 g.user,路由和其他函数可以访问它。

from flask import g

@app.before_request
def load_user():
user = User.query.get(request.session.get("user_id"))
g.user = user

@app.route("/admin")
def admin():
if g.user is None or not g.user.is_admin:
return redirect(url_for("index"))

应用上下文持续一个请求/响应周期,g 不适合跨请求存储数据。 Use a database, redis, the session, or another external data source for persisting data.


请注意,开发服务器和任何网络服务器都会在日志中输出计时信息。如果你真的想分析你的代码,你可以使用 the Werkzeug application profiler .

关于python - 这个 Flask 代码中的 g 对象是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514749/

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