You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jinja2中打印包含字典的列表?已实现单字典打印

遍历多字典列表生成HTML(Jinja2模板)

很简单,你只需要在原来的循环外面再加一层列表遍历循环就搞定了!因为allAttendance是包含多个学生字典的列表,外层循环负责逐个取出每个学生的字典,内层循环就沿用你之前处理单个字典的逻辑渲染键值对就行。

这里给你两种实用的实现方式,按需选择:

方式一:完整遍历所有字段

这种方式会完整渲染每个学生的所有键值对,并用容器区分不同学生的记录:

{% for student in allAttendance %}
  <!-- 用div包裹单个学生的记录,方便后续加样式区分 -->
  <div class="student-record">
    <h3>学生考勤记录</h3>
    <!-- 内层循环和你处理单个字典的逻辑完全一致 -->
    {% for key, value in student.items() %}
      <h4>{{ key }}</h4>
      <p>Value: {{ value }}</p>
    {% endfor %}
  </div>
  <!-- 加个分隔线,让不同学生的记录视觉上更清晰 -->
  <hr>
{% endfor %}

方式二:突出学生ID(避免重复显示)

如果想把学生ID作为每个记录的标题,并且不重复显示ID字段,可以这样优化:

{% for student in allAttendance %}
  <div class="student-record">
    <!-- 单独提取学生ID作为区块标题 -->
    <h3>学生ID: {{ student['Student ID'] }}</h3>
    {% for key, value in student.items() %}
      <!-- 跳过已经单独展示的Student ID字段 -->
      {% if key != 'Student ID' %}
        <h4>{{ key }}</h4>
        <p>Value: {{ value }}</p>
      {% endif %}
    {% endfor %}
  </div>
  <hr>
{% endfor %}

小提醒:

我把标题标签从h1/h2调整为h3/h4,因为h1通常是整个页面的主标题,用层级更低的标题更符合HTML语义规范,你可以根据自己的页面结构灵活调整标签层级。外层的<div>和<hr>是为了提升视觉区分度,不需要的话直接删掉就行。

内容的提问来源于stack exchange,提问作者Han

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:54:23