如何将Python多列表转换为HTML表格行?
解决方法
1. 先在Python端整理数据格式
你需要把两个列表中的对应元素配对,转换成每行对应一个数据项的结构,这样Jinja2才能循环生成独立的表格行:
week = ['1','2'] date = ['2022-10-01','2022-10-09'] # 使用zip配对对应元素,生成每行的字典 data = [{'week': w, 'date': d} for w, d in zip(week, date)]
2. 修改Jinja2模板
直接循环整理后的data,每个元素对应一行<tr>,分别输出week和date到单元格:
<table> <!-- 表头 --> <thead> <tr> <th>Week</th> <th>Date</th> </tr> </thead> <!-- 表体 --> <tbody> {% for row in data %} <tr> <td>{{ row.week }}</td> <td>{{ row.date }}</td> </tr> {% endfor %} </tbody> </table>
问题原因说明
你之前的模板逻辑有误:如果传入的data是包含整个week和date列表的字典(比如data = {'week': week, 'date': date}),内层循环会把所有周数塞进一个单元格、所有日期塞进另一个单元格,最终只生成一行表格。改成配对后的结构后,每个循环迭代对应表格的一行,就能正常应用行相关样式了。
内容的提问来源于stack exchange,提问作者Padfoot123
相关产品推荐
相关产品推荐

