我想在具有特定条件的jinja2模板中使用for循环

2024-09-29 01:37:50 发布

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

我刚开始学习python。我想在Jinja2模板中添加for循环,有一个条件,我有两个部分,它们的位置是左和右,具有不同的div(左部分为div,右部分为div),如图和代码所示。那么,如何在这个场景中添加for循环,从而使各个部分自动向左和向右对齐

<div class="timelines-container mbr-pt-4 mbr-white"> <!--1 Left--> <div class="timeline-element separline mbr-pb-4"> <div class="timeline-wrap mbr-flex"> <div class="timeline-img-wrap mbr-col-sm-12 mbr-col-md-6 mbr-flex"> <div class="timeline-img-panel"> <amp-img alt="" class="Intellemo-loader" height="170" layout="responsive" src="https://cdn.pixabay.com/photo/2015/07/17/22/43/student-849825__340.jpg" width="250"> <div class="placeholder" placeholder=""> <div class="mobirise-spinner"> <em></em> <em></em> <em></em> </div></div> <a href="top-5-marketing-reporting-tools.html"></a> <amp-img alt="Marketing-Reporting-Tools" class="Intellemo-loader" fallback height="170" layout="responsive" src="https://cdn.pixabay.com/photo/2015/07/17/22/43/student-849825__340.jpg" width="250"> <div class="placeholder" placeholder=""> <div class="mobirise-spinner"> <em></em> <em></em> <em></em> </div></div> <a href="top-5-marketing-reporting-tools.html"></a> </amp-img></amp-img> <div class="timeline-text-content"> <a href="top-5-marketing-reporting-tools.html"> <h4 class="mbr-timeline-title mbr-black mbr-fonts-style display-2 mbr-pb-2" style="padding-bottom: 0px;">Top 5 Marketing Reporting Tools</h4></a> <p class="mbr-timeline-text mbr-fonts-style display-12 mbr-timeline-text mbr-black">Are you one amongst those digital marketers who feel creating reports is one of the most boring and tedious tasks or somebody...</p> </div> </div> </div> <div class="timeline-item-wrap mbr-col-sm-12 mbr-col-md-6 mbr-flex mbr-column align-left"> </div> <span class="iconBackground"></span> </div> </div> <!--2 Right--> <div class="timeline-element separline mbr-pb-4"> <div class="timeline-wrap mbr-flex mbr-row-reverse"> <div class="timeline-img-wrap mbr-col-sm-12 mbr-col-md-6 mbr-flex"> <div class="timeline-img-panel"> <amp-img alt="CRM-Benefits" class="Intellemo-loader" height="170" layout="responsive" src="https://cdn.pixabay.com/photo/2015/07/17/22/43/student-849825__340.jpg" width="250"> <div class="placeholder" placeholder=""> <div class="mobirise-spinner"> <em></em> <em></em> <em></em> </div></div> <a href="crm-software-benefits.html"></a> <amp-img alt="CRM-Benefits" class="Intellemo-loader" fallback height="170" layout="responsive" src="https://cdn.pixabay.com/photo/2015/07/17/22/43/student-849825__340.jpg" width="250"> <div class="placeholder" placeholder=""> <div class="mobirise-spinner"> <em></em> <em></em> <em></em> </div></div> <a href="crm-software-benefits.html"></a> </amp-img></amp-img> <div class="timeline-text-content"> <a href="crm-software-benefits.html"> <h4 class="mbr-timeline-title mbr-black mbr-fonts-style display-2 mbr-pb-2" style="padding-bottom: 0px;">CRM Benefits Explained</h4></a> <p class="mbr-timeline-text mbr-fonts-style display-12 mbr-timeline-text mbr-black">Explained Better Sales Prospects Follow the quality leads by converting opportunity and reducing the sales cycle...</p> </div> </div> </div> <div class="timeline-item-wrap mbr-col-sm-12 mbr-col-md-6 mbr-flex mbr-column"> </div> <span class="iconBackground"></span> </div> </div> </div>

Screenshot of left and right sections


Tags: textdivimgstylehtmlcoltimelineplaceholder
2条回答
#To add for loop in jinja2 syntax as follows:-
{% for post in posts%}
#content
{%endfor%}

看起来您有一个项目列表,并且希望呈现左侧索引为偶数(0、2、4、…)的项目,右侧索引为奇数(1、3、5、…)的项目。您可以创建2个循环,并使用jinja even test为每个循环筛选项目:

<div class="left-column">
<!  For items with 0, 2, 4,.. indexes  >
{% for item in item_list %}
  {% if loop.index0 is even %}
    {{ item }}
  {% endif %}
{% endfor %}
</div>

<div class="right-column">
<!  For items with 1, 3, 5,.. indexes  >
{% for item in item_list %}
  {% if loop.index0 is not even %}
    {{ item }}
  {% endif %}
{% endfor %}
</div>

loop是一个特殊的jinja变量,在循环中可用。它可以用于various useful operations,比如获取当前循环索引、检查它是第一个循环还是最后一个循环等

相关问题 更多 >