我的 Jinja 模板中有一个 if 语句,出于可读性原因,我想将它写在 multines 中。考虑案例
{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
我的 Jinja 模板中有一个 if 语句,出于可读性原因,我想将它写在 multines 中。考虑案例
{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
根据文档:https : //jinja.palletsprojects.com/en/2.10.x/templates/#line-statements 只要代码周围有括号/括号,您就可以使用多行语句。例子:
{% if ( (foo == 'foo' or bar == 'bar') and
(fooo == 'fooo' or baar == 'baar') ) %}
<li>some text</li>
{% endif %}
编辑:使用line_statement_prefix = '#'
* 代码如下所示:
# if ( (foo == 'foo' or bar == 'bar') and
(fooo == 'fooo' or baar == 'baar') )
<li>some text</li>
# endif
*这是一个如何在 中指定的line_statement_prefix
示例Environment
:
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(
loader=PackageLoader('yourapplication', 'templates'),
autoescape=select_autoescape(['html', 'xml']),
line_statement_prefix='#'
)
或使用烧瓶:
from flask import Flask
app = Flask(__name__, instance_relative_config=True, static_folder='static')
app.jinja_env.filters['zip'] = zip
app.jinja_env.line_statement_prefix = '#'