首页 > 解决方案 > 如何在 Flask 1.0.4 中启用/配置 Jinja 行语句?

问题描述

Jinja 文档说明了以下关于行语句的内容:

如果应用程序启用了行语句,则可以将行标记为语句。

视频中,行语句的启用/配置如下:

from flask import Flask

app = Flask(__name__)
app.jinja_env.line_statement_prefix = '%'

但是,在 Flask 1.0.4 中,我的应用程序对象没有此属性。

如何启用和配置行语句?

标签: pythonpython-3.xflaskjinja2

解决方案


所以根据来源,app.jinja_envlocked_cached_property第一次访问时创建的。所以我们不能直接在app.jinja_env.

我们可以做的是app.jinja_options在创建应用程序时进行设置,这样当 jinja 加载环境时,它会查看app.jinja_optionsFlask中的默认值

jinja_options = {"extensions": ["jinja2.ext.autoescape", "jinja2.ext.with_"]}

因此,我相信以下应该做我们需要的

from flask import Flask

Flask.jinja_options = {'extensions': ['jinja2.ext.autoescape', 'jinja2.ext.with_'], 'line_statement_prefix': '%'}
app = Flask(__name__)

Flask 分解选项对象,将其传递给作为 Jinja Environment 的子类的 Environment,然后分配 line_statement_prefix。


推荐阅读