【问题标题】:Python Jinja error while comparing string比较字符串时出现 Python Jinja 错误
【发布时间】:2013-03-19 11:18:53
【问题描述】:

在 python 中比较两个字符串时遇到问题:

这是有效的:

{% for publication in publications %}
        {{ publications[publication].pub_type }}
{% endfor %}

但不是这个:

{% for publication in publications %}
        {% if publications[publication].pub_type equals "conference_paper" %} 
             class="active" 
         {% endif %}
{% endfor %}

在上面的代码中,我只是在测试一些东西,但它不起作用

我收到此错误:

jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token 'end of statement block', got 'equals'

【问题讨论】:

  • 如果将第一个“conference_paper”替换为实变量,是否有效?

标签: python flask jinja2


【解决方案1】:

也许你想要:

{% if publication.pub_type == "conference_paper" %}
{#                         ^^                    #}

equals 不是valid jinja2 syntax

【讨论】:

  • 似乎不太可能,因为在模板中编写“if True”(这本身就是一种非常冗长的方式,根本不写条件)是一种非常冗长的方式。
  • 我猜文档是错误的,哈哈,wsgiarea.pocoo.org/jinja/docs/conditions.html
  • @GangstaGraham:我相信文档指的是 jinja,而不是 jinja2,它们很相似,但目前只支持 jinja2。
  • 哈哈,我想我看错了文档,顺便谢谢你的回答,它有帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
相关资源
最近更新 更多