python - 如何在 Flask 1.0.4 中启用/配置 Jinja 行语句?
问题描述
Jinja 文档说明了以下关于行语句的内容:
如果应用程序启用了行语句,则可以将行标记为语句。
在此视频中,行语句的启用/配置如下:
from flask import Flask
app = Flask(__name__)
app.jinja_env.line_statement_prefix = '%'
但是,在 Flask 1.0.4 中,我的应用程序对象没有此属性。
如何启用和配置行语句?
解决方案
所以根据来源,app.jinja_env
是locked_cached_property
第一次访问时创建的。所以我们不能直接在app.jinja_env
.
我们可以做的是app.jinja_options
在创建应用程序时进行设置,这样当 jinja 加载环境时,它会查看app.jinja_options
Flask中的默认值
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。