You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask中如何在@app.before_request与@app.route间非全局传递变量

Flask中@app.before_request向@app.route传递变量的最佳方式(无全局变量)
  • 可行性:完全可行,Flask内置了专门的机制解决这类请求内数据传递问题。
  • 最佳实现方式:使用Flask提供的g对象。g是请求上下文专属的临时存储对象,每个请求都会生成独立的g实例,仅在当前请求周期内有效,既不会跨请求污染数据,也不属于全局变量范畴。

代码示例:

from flask import Flask, g

app = Flask(__name__)

@app.before_request
def before_request():
    # 将变量绑定到g对象
    g.x = 'anything'

@app.route('/')
def root():
    # 从g对象中读取变量
    return f"获取到的x值:{g.x}"

说明:g对象是Flask为请求处理流程量身设计的临时数据载体,可在请求的各个处理阶段(如前置钩子、视图函数、后置钩子)之间安全传递数据,请求结束后该对象会被自动销毁,不存在全局变量的副作用问题。

内容的提问来源于stack exchange,提问作者SpongeB0B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:42:01