67

我的 Jinja 模板中有一个 if 语句,出于可读性原因,我想将它写在 multines 中。考虑案例

{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
4

1 回答 1

108

根据文档: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 = '#'
于 2013-03-01T23:53:12.000 回答