当前位置: 首页 > 面试题库 >

jinja2模板中的'if'语句

仲孙钊
2023-03-14
问题内容

我正在尝试在Jinja模板中编写if语句

{% for key in data %}
    {% if key is 'priority' %}
        <p>('Priority: ' + str(data[key])</p>
    {% endif %}
{% endfor %}

我试图在python中翻译的语句是

if key == priority:
    print(print('Priority: ' + str(data[key]))

这是我得到的错误:

TemplateSyntaxError:预期的令牌“名称”,得到了“字符串”


问题答案:

为什么循环?

您可以简单地这样做:

{% if 'priority' in data %}
    <p>Priority: {{ data['priority'] }}</p>
{% endif %}

最初进行字符串比较时,应该使用==



 类似资料:
  • 问题内容: 我从Flask的Jinja2模板提供动态页面。现在,我在脚本标签内定义客户端模板,例如Jinja2克隆Nunjucks。问题是,客户端模板具有类似语法该Flask’s的 Jinja2的解释,而不是可以解释渲染的逐字。 如何使整个脚本块逐字呈现? 问题答案: 你可以禁用块内标签的解释:

  • 问题内容: 我想在AngularJS模板中做一个条件。我从Youtube API获取视频列表。某些视频的比例为16:9,有些视频的比例为4:3。 我想要这样的条件: 我正在使用迭代视频。不知道该如何应对这种情况: 在范围内添加功能? 是否在模板中? 问题答案: Angularjs(低于1.1.5版)不提供此功能。以下是您要达到的目标的几种选择: ( 如果您使用的是1.1.5或更高版本,请跳至下面的

  • 我想在AngularJS模板中做一个条件。我从Youtube API获取一个视频列表。视频有的比例为16:9,有的比例为4:3。 我想提出这样一个条件: 我正在使用迭代视频。我不知道该怎么处理这种情况: 是否在作用域中添加函数? 是否在模板中执行?

  • 我用JSX呈现以下HTML 在JSX中,我有 并返回 这很好,但现在我尝试在模板文字中添加条件,以仅在值存在时显示属性值对。 我尝试了许多变体,包括: 条件呈现: 它显示值,但返回条件语句语法,而不是对其进行处理。 我怎样才能使这个条件起作用?我必须为每一个添加条件。

  • 问题内容: 我按行业来做html / css,并且我一直作为模板设计者从事django项目的工作。我目前正在使用Jinja2的网站上工作,该网站已经使用了大约2周。通过阅读文档,我发现Jinja2不支持多级模板继承,因为您不能做多个 每个渲染。现在,我非常确定您可以在Django中执行此操作,该功能非常强大,因为您可以指定基本模板,基于该模板指定3或4个模板,然后使用这些基本模板构建页面的内容。继

  • 问题内容: 我必须遵循以下方案: python字典的python列表列表中的 每个元素都是一个python字典,看起来像这样: 现在,我希望所有字典作为主模板中的列表。但是,每个词典的内容应由子模板呈现。应使用哪种模板来呈现内容,应由字典的type变量定义。 关于使用Jinja2如何完成此操作的任何提示(如果有帮助,我正在通过Flask使用它。) 谢谢! 问题答案: 如果有人需要它: 然后可以在模

  • 问题内容: 我正在尝试使用来确定哪个区块应填充我的。 我有一个默认值,此模板正在扩展。所以我尝试了这个: 我期待看到条件是否为真,如果条件不正确,则查看默认块。 但是我两次都得到了。 然后我尝试了一个: 我得到这个错误: 如何在语句中放置一个块? 问题答案: 您不能设定条件;一旦使用了标签,就总是要填充该块。 相反,将您的条件 放入 块中,并用于指示Jinja使用模板中定义的块的原始内容:

  • 问题内容: 如何获得jinja2模板中列表中的元素数? 例如,在Python中: 和在jinja2 问题答案: 您也可以在以下表达式中使用此语法 jinja2的内置过滤器记录在这里;具体来说,正如您已经发现的(及其同义词)记录为: 返回序列或映射的项目数。 因此,正如您所发现的,模板中的(或等效)将给出“产品数量”(“列表长度”)