【问题标题】:Flask + Jinja: Pass Data to a Base Template/All TemplatesFlask + Jinja:将数据传递给基本模板/所有模板
【发布时间】:2014-12-17 09:15:22
【问题描述】:

我有一个方法可以返回我的基本模板中需要的数据(全局页脚的内容)。

如何 (1) 将变量传递到基本模板(其他模板扩展)或 (2) 将变量全局传递到所有模板而不在调用 render_template 时显式添加?

【问题讨论】:

标签: flask jinja2


【解决方案1】:

来自烧瓶文档:Flask's Context Processors

要将新变量自动注入到模板的上下文中, Flask 中存在上下文处理器。上下文处理器在 模板被渲染并能够将新值注入 模板上下文。上下文处理器是一个函数,它返回一个 字典。然后合并此字典的键和值 对于应用程序中的所有模板,使用模板上下文:

来自文档的示例:

@app.context_processor
def inject_user():
    return dict(user=g.user)

请注意,此示例使用 g 变量,该变量已在模板中访问。

【讨论】:

  • 但这会添加到所有模板中,对吧?如果我只想在某些视图中添加怎么办?
猜你喜欢
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多