Flask - 访问模板中的配置变量

Posted

技术标签:

【中文标题】Flask - 访问模板中的配置变量【英文标题】:Flask - Accessing the config variable in the template 【发布时间】:2011-10-29 13:43:38 【问题描述】:

我使用的是 Flask 0.7 版。我已将静态内容的路径存储在配置文件中并使用

加载它
app.config.from_envvar(<file_name>)

我能否在不通过视图传递变量的情况下访问模板中的这个配置变量?

【问题讨论】:

我使用 app.config.from_pyfile() 将配置加载到烧瓶配置变量中。从 Flask 0.6 开始; config 是全局变量之一,默认情况下在 Jinja2 模板中可用。然后配置变量可以作为模板中的字典对象轻松访问。 【参考方案1】:

flask 默认在模板上下文中传递了一些全局变量(here 是完整列表),其中之一是config,它允许您从模板访问应用程序配置。作为字典,可以使用config['MY_CONFIGURATION']config.MY_CONFIGURATION 语法访问它(访问dict 项的这种语法是Jinja 特有的)。

另一方面,如果您想将任意数据传递给您的模板,而不必在每个视图中显式传递它,则必须使用context processors。

【讨论】:

我只想指出“只有大写的值实际上存储在配置对象中”;面对与发帖人相同的问题时,这让我有几分钟的困惑。 如果您在调试模式下将配置值存储在 Python 文件中,请不要忘记重新加载 Flask,不会监视此文件中的更改。 模板中的使用示例: config.MY_CONFIGURATION 这个简单的解决方案效果很好。要检查此解决方案如何与 Docker 集成,可以查看此post。

以上是关于Flask - 访问模板中的配置变量的主要内容,如果未能解决你的问题,请参考以下文章

Flask之模板之特殊变量和方法

django模板

Flask

Flask配置文件和环境变量:配置文件和环境变量的读取与调用

3. Flask 静态文件模板文件设置

Python中Flask框架的变量和函数