如何使用jinja2对烧瓶中的某些值进行分组?

时间:2018-05-25 12:08:03

标签: flask jinja2

我的index.html看起来像这样,

<div class="ui small feed">
        {% for article in articles %}
          <h4 class="ui header">{{ article.source }}</h4>
            {% if article.comments %}
              <div class="event">
                <div class="content">
                  <div class="summary">
                    <a href="{{ article.comments }}">
                      {{ article.title }}</a>
                  </div>
                </div>
              </div>
            {% else %}
              <div class="event">
                <div class="content">
                  <div class="summary">
                    <a href="{{ article.link }}">
                      {{ article.title }}</a>
                  </div>
                <div>
              </div>
            {% endif %}
        {% endfor %}
    </div>

以前的代码会产生类似这样的事情,

samename
url
samename
url
samename
url
anothername
url
anothername
url

我如何从中获得一个?

samename
  url
  url
  url

anothername
  url
  url

我尝试过几种方式,例如声明标志变量(带有布尔值),并且它总是在演示方面得到太多代码,这对你来说是件坏事吗?任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用groupBy(此处为doc

{% for group in articles|groupby('source') %}
  <h4 class="ui header">{{ group.grouper }}</h4>
  {% for article in group.list %}
    {% if article.comments %}
      <div class="event">
        <div class="content">
          <div class="summary">
            <a href="{{ article.comments }}">
              {{ article.title }}
            </a>
          </div>
        </div>
      </div>
    {% else %}
      <div class="event">
        <div class="content">
          <div class="summary">
            <a href="{{ article.link }}">
              {{ article.title }}
            </a>
          </div>
        <div>
      </div>
    {% endif %}
  {% endfor %}
{% endfor %}

希望这可以帮到你!