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

发布于 2024-11-28 17:22:17 字数 65 浏览 3 评论 0原文

假设我有 settings.py 文件,其中包含一堆常量(将来可能会更多)。如何访问 Jinja 模板中的这些变量?

Say I have settings.py file with a bunch of constants (maybe more, in the future). How do I access those variables in a Jinja template?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嗫嚅 2024-12-05 17:22:18

Flask 会自动将应用程序的配置包含在标准上下文中。因此,如果您使用 app.config.from_envvarapp.config.from_pyfile 从设置文件中提取值,则您已经可以在 Jinja 模板中访问这些值(例如,{{ config.someconst }})。

Flask automatically includes your application's config in the standard context. So if you used app.config.from_envvar or app.config.from_pyfile to pull in the values from your settings file, you already have access to those values in your Jinja templates (e.g., {{ config.someconst }}).

所谓喜欢 2024-12-05 17:22:18

您需要定义一个 context_processor

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

以这种方式注入的值将直接在模板中可用:

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

您可能需要使用 Python dir 函数来避免列出所有常量。

You need to define a context_processor:

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

Values injected this way will be directly available in templates:

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

You'll probably want to use the Python dir function to avoid listing all of the constants.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文