html - 使用jinja2在表格中多行
问题描述
<table>
<tr>
<the>Student Name</th>
<the>Course</th>
<the>Grad</th>
<tr class="">
{% for student in students %}
<td rowspan="3">
student.name
</td>
<td>student.course</td>
<td>student.grd</td>
{% endfor %}
</tr>
</table>
解决方案
简要说明
将变量括在双括号(
{{
和}}
)内;该标签
the
实际上th
是 html 标准(另外,结束标签必须与开始标签相同);重构您的数据结构:例如,课程可以是学生对象/字典中的对象数组或字典,因此可以对其进行迭代;
html 属性需要是课程的
rowspan
大小,因为它决定了要跨越多少行;对于这种情况,该
rowspan
属性必须td
在每一行的每个表数据 ( ) 上声明一次,正如您已经注意到的那样,该属性位于学生的姓名上。
代码
如果您使用的是标准实例类对象而不是字典,则必须将方括号 ([
和]
) 访问器更改为点 ( ) 运算符。.
<table>
<tr>
<th>Student Name</th>
<th>Course</th>
<th>Grade</th>
</tr>
{% for student in students %}
<tr>
<td rowspan="{{student['courses']|length)}}">{{student['name']}}</td>
<td>{{student['courses'][0]['name']}}</td>
<td>{{student['courses'][0]['grd']}}</td>
</tr>
{% for course in student['courses'][1:] %}
<tr>
<td>{{course['name']}}</td>
<td>{{course['grd']}}</td>
</tr>
{% endfor %}
{% endfor %}
</table>
您可以在jinja2online 之类的网站上进行在线测试。
Jinja2 渲染输出示例
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
<table>
<tr>
<th>Student Name</th>
<th>Course</th>
<th>Grade</th>
</tr>
<tr>
<td rowspan="2">Anonymous</td>
<td>CS</td>
<td>90</td>
</tr>
<tr>
<td>NC</td>
<td>60</td>
</tr>
<tr>
<td rowspan="2">Elephant</td>
<td>MATH</td>
<td>100</td>
</tr>
<tr>
<td>APPLIED MATH</td>
<td>90</td>
</tr>
</table>
测试用数据样本
{
"students": [
{
"name": "Anonymous",
"courses": [
{
"grd": "90",
"name": "CS"
},
{
"grd": "60",
"name": "NC"
}
]
},{
"name": "Elephant",
"courses": [
{
"grd": "100",
"name": "MATH"
},
{
"grd": "90",
"name": "APPLIED MATH"
}
]
}
]
}
从技术上讲,Python 中的字典是一个对象,但出于解释的目的,我区分了它们。
阅读推荐
- 请参阅W3Schools 的有关 rowspan 的教程;
- 参见Jinja 的文档;
- 请参阅W3Schools 的标准标签列表。
推荐阅读
- sql - 将重复的行分成单独的列 TSQL
- amazon-web-services - 如何阻止 AWS CLI 调用
- c# - c# - 为什么 Directory.GetFiles() 在文件名之前反转 /
- r - 错误:对象...在 R 编程中找不到
- r - 将 2 个不同的数据框绘制到 1 个图中并使用 ggplot2 设置自定义 x 轴
- spring - 超过文件上传最大文件大小时,Spring Boot 2.2.0.RELEASE 抛出 InvalidCsrfTokenException
- sql - R 将所需变量从 ODBC/HANA 连接传递到 sql 语句
- java - 面临从基于 Spring Boot 的 Java 应用程序读取 Amazon SQS 队列的问题
- java - 从节点而不是后代节点中删除文本
- php - 表单处理:使用 foreach 循环生成的空 TD 标签