Flask + Jinja: 将数据传递给基础模板/所有模板

58
我有一个方法返回数据,这些数据需要在我的基础模板中使用(用于全局页脚内容)。
如何实现以下至少一种方式:(1) 将变量传递到基础模板(其他模板扩展该模板),或者 (2) 在不显式添加"render_template"调用的情况下向所有模板全局传递变量?
1个回答

71

来自Flask文档:Flask的上下文处理器

为了能够自动将新变量注入到模板的上下文中,Flask提供了上下文处理器。上下文处理器在渲染模板之前运行,并有能力向模板上下文中注入新值。上下文处理器是一个返回字典的函数。这个字典的键和值将与应用程序中所有模板的上下文合并:

示例来自文档:

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

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


8
但这会将其添加到所有模板中,我如果只想在特定视图中添加怎么办? - Mojimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接