如何写一份多行的金贾声明

我在我的金贾模板中有一个 if 语句,出于可读性的原因,我想用多语句来写它。考虑一下这个案子

{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
169162 次浏览

根据文档: 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

* 下面是如何在 Environment中指定 line_statement_prefix的一个例子:

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 = '#'