如何在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加载环境时,它会看到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。

最新更新