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
不适用于跨请求存储数据。使用数据库,Redis,会话或其他外部数据源来持久化数据。
请注意,开发服务器和任何Web服务器将已经在日志中输出计时信息。如果您真的想分析代码,则可以使用Werkzeug应用程序分析器。