【问题标题】:Get variables from a settings.py file in a Jinja template with Flask使用 Flask 从 Jinja 模板中的 settings.py 文件中获取变量
【发布时间】:2011-10-24 11:35:57
【问题描述】:

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

【问题讨论】:

标签: python flask jinja2


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你需要定义一个context_processor:

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

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

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

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

    【讨论】:

    • 谢谢。那么我可以在所有模板中自动访问它们吗? (例如{{ g.const1 }}
    • @john2x:常量将直接可用,请参阅我更新的答案。但我认为 ddbeck 的答案可能更适合您的需求。
    • 谢谢。我猜app.config 是“标准”方式?
    • 它们在宏中不可用。为什么??
    猜你喜欢
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2019-11-25
    相关资源
    最近更新 更多