jinja2:TemplateSyntaxError:expected token“,”,get“string”

2024-06-06 08:59:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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 %}

上面的重新搜索引发以下错误:

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

Tags: 字符串代码indivrejinja2forcontainer
1条回答
网友
1楼 · 发布于 2024-06-06 08:59:12

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

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

将此行替换为

{% if "Error" in l %}

可以解决你的问题。

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

相关问题 更多 >