#flask #jinja2
#flask #jinja2
Вопрос:
У меня есть два списка, с помощью которых я хочу создать таблицу, используя циклы jinja и for. При использовании одного списка и одного цикла for проблем не возникает.
<table>
<tr>
<th>Customer</th>
<th>Product</th>
<th>QTY</th>
</tr>
{% for i,e in list_2 %}
<tr>
<td>{{ i }}</td>
<td>{{ e }}</td>
</tr>
{% endfor %}
</table>
Создает
Однако, когда я пытаюсь ввести другой цикл for из другого списка, это происходит.
<table>
<tr>
<th>Customer</th>
<th>Pro</th>
<th>QTY</th>
</tr>
{% for i,e in list_2 %}
<tr>
<td>{{ i }}</td>
<td>{{ e }}</td>
{% for i in qtyyyy %}
<td>{{ i }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
Это мой идеальный результат. Я пытался испортить окончание циклов, но не смог правильно отобразить его.
Комментарии:
1. Вы не включили входные данные в качестве структуры данных python в свой вопрос. Это поможет вам получить ответ.
Ответ №1:
Есть несколько способов решить проблему.
Одним из решений было бы предварительно объединить два списка с помощью zip.
list_1 = [
('(Retail)', 'Example'),
('(1)(Distributor)', 'Example'),
('(Ditributor)', 'Example'),
('False', 'Example')
]
list_2 = [35.0, 147.0, 50.0, 180.0]
list_3 = [a (b,) for a,b in zip(list_1, list_2)]
<table>
{% for a,b,c in list_3: %}
<tr>
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
{% endfor %}
</table>
Но вы также можете использовать текущий индекс для доступа к значениям.
<table>
{% for a,b in list_1 %}
<tr>
<td>a</td>
<td>b</td>
<td>{{ list_2[loop.index0] }}</td>
</tr>
{% endfor %}
</table>
Комментарии:
1. <td>{{list_2[loop.index0] }}</td> Был ключевым здесь для меня. Для тех, кто еще искал, это была проблема. Список нуждался в индексе. Большое спасибо!!!