Используя 2 для l oop данных в 2 отдельных столбцах, используя jinja (flask)? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть два списка, сгенерированных из вида. Я хочу отобразить его в html, чтобы отобразить в виде таблицы, которую я запустил два для l oop

{% for row in country %}
   <tr>
   <td>{{ row }}</td>
{% endfor %}
{% for count in death %}
   <tr>
   <td>{{ count }}</td>
{% endfor %}

страна смерти ★ Соединенные Штаты 16,691 ★ Испания 15,447 ★ Италия 18,279

но я нужно быть похожим на

★ США 16,691
★ Испания 15,447
★ Италия 18,279

Ответы [ 3 ]

1 голос
/ 10 апреля 2020

Вы можете сделать это, сравнивая значения индекса (счетчика) двух циклов. Только когда они равны, они будут отображаться в новой строке.

Специальная переменная l oop всегда указывает на самый внутренний l oop. Если желательно иметь доступ к внешнему l oop, можно присвоить ему псевдоним:

{% for row in country %}
     {% set outer_loop = loop %}
     {% for count in death %}
         {% if outer_loop.index0 == loop.index0 %} #note that index start at 0
            <tr>
            <td>★ {{ row }} {{ count }}</td>
            </tr>
         {% endif %} 
    {% endfor %}
{% endfor %}

Это должно сделать это, но я не проверял это; это примерно идея здесь. Вы также можете узнать, что возможно, прочитав документацию здесь

0 голосов
/ 11 апреля 2020

Для 3-х вложенных l oop, вот код

{% for row in country %}
  {% set outer_loop = loop %}
  {% for confirm in confirmed %}
     {% set inner_loop = loop %}
     {% for dead in death %}
        {% if outer_loop.index0 == loop.index0 %}  {% if inner_loop.index0 == 
        loop.index0 %}
      <tr><td>{{ row }}</td> <td> {{ confirm }}</td> <td> {{ dead }} </td></tr>
     {% endif %}
     {% endfor %}
  {% endfor %}

{% endfor%}

0 голосов
/ 11 апреля 2020

Вам, вероятно, будет лучше в вашем шаблоне, если вы объедините списки в вашем представлении.

В представлении:

statistics = zip(country, death)

В шаблоне вы Теперь можно перебирать список кортежей, выглядящих следующим образом:

[('United States', '16,691'), ('Spain', '15,447'), ('Italy', '18,279')]

Я не совсем уверен, как это работает в jinja, но это устраняет необходимость в вложенных циклах.

...