You need to enable JavaScript to run this app. Flask中如何通过Jinja模板基于Python字典生成指定结构的HTML表格?
优惠活动
大模型
产品
解决方案
定价
更多

Flask中如何通过Jinja模板基于Python字典生成指定结构的HTML表格?

原代码渲染异常的核心原因
  • 第一层循环直接遍历字典键,没有建立逐行对齐的索引逻辑
  • 内嵌循环会将每个值列表的全部元素一次性塞入当前行,最终生成的单元格顺序、行数完全不符合预期
符合需求的实现方案

实现逻辑

  1. 单独渲染表头:直接遍历字典的全部键,作为表头单元格内容
  2. 计算所有值列表的最大长度,作为数据行的总遍历次数,保证最长列表的所有元素都能完整展示
  3. 按索引逐行取值:对每一行对应的索引,依次遍历每个值列表,若列表存在当前索引的元素则输出对应值,不存在则输出空单元格

完整模板代码

<table>
  <thead>
    <tr>
      {% for header_name in alternativas.keys() %}
        <th>{{ header_name }}</th>
      {% endfor %}
    </tr>
  </thead>
  <tbody>
    {% set max_row_count = alternativas.values() | map('length') | max %}
    {% for current_idx in range(max_row_count) %}
    <tr>
      {% for col_data in alternativas.values() %}
        <td>{{ col_data[current_idx] if col_data | length > current_idx else '' }}</td>
      {% endfor %}
    </tr>
    {% endfor %}
  </tbody>
</table>

效果验证

以示例输入alternativas = {'attribute1':['val1', 'val2', 'val3'], 'attribute2':['val4', 'val5']}渲染,最终输出的表格结构完全匹配预期:

attribute1attribute2
val1val4
val2val5
val3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 20:15:04