jinja2:TemplateSyntaxError:期望令牌',',得到'字符串'

时间:2015-07-18 00:28:22

标签: python templates jinja2

我是Jinja2的新手,并且在使用python正则表达式(re)时遇到了问题。在下面的代码中,我想加粗包含错误字符串的行。

  {% block content %}
    <div class="container">
      {% for l in lines %}
         {% if re.search(r"Error", l) %}  {# <<< Throws error #}
            <b> {{ l }} </b>
         {% else %}
            {{ l }} <hr>
         {% endif %}
      {% endfor %}
    </div>
 {% endblock %}

上面的re.search引发了以下错误:

jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token ',', got 'string'

1 个答案:

答案 0 :(得分:7)

jinja2模板语法不完全支持Raw python代码。

{% if re.search(r"Error", l) %}

替换此行
{% if "Error" in l %}

可以解决您的问题。

如果您的逻辑条件更复杂,您应该考虑定义自己的custom filters(可以调用任何python代码)或在视图层中执行复杂的操作。还要检查global namespace