在Flask中使用Jinja模板获取settings.py文件中的变量

12 投票
2 回答
7510 浏览
提问于 2025-04-16 23:20

假设我有一个叫 settings.py 的文件,里面有很多常量(将来可能会有更多)。我该如何在 Jinja 模板中访问这些变量呢?

2 个回答

7

你需要定义一个 context_processor

@app.context_processor
def inject_globals():
    return dict(
        const1 = const1,
        const2 = const2,
    )

通过这种方式注入的值会直接在模板中可用:

<p>The values of const1 is {{ const1 }}.</p>

你可能想用 Python 的 dir 函数,这样就不用一个一个列出所有常量了。

19

Flask会自动把你应用的配置包含在一个叫做标准上下文的地方。所以如果你使用了app.config.from_envvar或者app.config.from_pyfile来从设置文件中获取值,那么你在Jinja模板中就可以直接使用这些值了(比如说{{ config.someconst }})。

撰写回答