我的main.py
包含以下变量:
'booking_times':
{
'Today': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Tue': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Wed': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00']
}
在我看来,我想在表格中显示它们:
-----------------------
Today | Tue | Wed | // line 1
9:00 | 9:00 | 9:00 | // line 2
12:00 | 12:00 | 12:00 |
我有两个问题:
(1)作为一个例子,我将如何遍历第2行,每行都是<td>
html标签?
(2)我的第1行如下,但输出为Tue | Today | Wed
而不是Today | Tue | Wed |
:
{% for day in booking_times %}
<td>{{day}}</td>
{% endfor %}
谢谢!
答案 0 :(得分:2)
假设您使用的是Python,这是您可以尝试的一件事。请注意,这从booking_times
变量的设置稍有不同开始,但希望这个概念有意义。一般的想法是我们首先创建一个排序顺序,我们将用它来排序我们的值。然后,我们使用zip
创建一个新的列表列表,这些列表将从日期开始,然后在每个后续列表中跟随小时。
booking_times = {
'Today': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Tue': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00'],
'Wed': ['9:00', '12:00', '14:00', '15:00', '19:00', '20:00']
}
# Create a new booking_times variable that is a list-of-list,
# leading with the 'days' and followed by one list for each time
sorted_keys = ['Today', 'Tue', 'Wed']
booking_times = [sorted_keys] + zip(*(booking_times[s] for s in sorted_keys))
以下是booking_times
在使用简单for row in booking_times: print row
进行迭代时的样子:
['Today', 'Tue', 'Wed']
('9:00', '9:00', '9:00')
('12:00', '12:00', '12:00')
('14:00', '14:00', '14:00')
('15:00', '15:00', '15:00')
('19:00', '19:00', '19:00')
('20:00', '20:00', '20:00')
然后,您可以将该值传递到模板中,并以与上述相同的方式迭代它:
{% for day in booking_times %}
<tr>
{% for item in day %}
<td>{{ item }}</td>
{% endfor %}
</tr>
{% endfor %}
我现在无法测试模板,但是在修改时输出以下内容以使用简单的print语句:
Today Tue Wed
9:00 9:00 9:00
12:00 12:00 12:00
14:00 14:00 14:00
15:00 15:00 15:00
19:00 19:00 19:00
20:00 20:00 20:00
这可能与您当前的设置有所偏差,如有必要,请尽快调整。