我在Jinja模板中有一个if语句,为了可读性我想将其写成多行。考虑以下情况:
{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
我在Jinja模板中有一个if语句,为了可读性我想将其写成多行。考虑以下情况:
{% if (foo == 'foo' or bar == 'bar') and (fooo == 'fooo' or baar == 'baar') etc.. %}
{% 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='#'
)
或者使用Flask:
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 = '#'
expected token 'end of statement block', got 'pass'
。同样地,如果将pass
替换为set
或常规赋值,我认为你会得到expected token 'end of statement...
。相反,你需要分别在每个语句中使用{% %}
进行包装,例如:{% if ... %} {% set x = 1 %} {% endif %}
。 - Tim Diels%}
放在pass
上面,就像你用#
语法一样。 - Tim Diels