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加载环境时,它会看到Flask中已经是的默认app.jinja_options
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分解options对象,将其传递给Environment,后者是Jinja Environment的子类,然后分配line_statement_prefix。