首页 文章

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

提问于
浏览
33

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

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

1 回答

  • 41

    来自flask文档:Flask's Context Processors

    要自动将新变量注入模板的上下文,Flask中存在上下文处理器 . 上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文 . 上下文处理器是返回字典的函数 . 然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:

    来自docs的示例:

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

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

相关问题