gpt4 book ai didi

python - 如何构建数据以在 Flask 中轻松构建 HTML 表格

转载 作者:技术小花猫 更新时间:2023-10-29 12:45:58 26 4
gpt4 key购买 nike

我正在尝试根据存储在表格中的数据创建 HTML 表格。我的数据是从表中读取并转换成列表字典,例如:

x = {'date':[u'2012-06-28', u'2012-06-29', u'2012-06-30'], 'users': [405, 368, 119]}

我的目标是为任意列表长度创建一个具有以下结构的 HTML 表格:

<table>
<thead>
<th>Date</th>
<th>Users</th>
</thead>

<tbody>
<tr>
<td>2012-06-28</td>
<td>405</td>
</tr>
<tr>
<td>2012-06-29</td>
<td>368</td>
</tr>
<tr>
<td>2012-06-30</td>
<td>119</td>
</tr>
</tbody>
</table>

我曾尝试在我的 Flask 模板中以两种不正确的方式执行此操作:

<tbody>
{% for line in x %}
<tr>
<td>{{ x.date|tojson|safe }}</td>
<td>{{ x.users }}</td>
</tr>
{% endfor %}
</tbody>

将整个列表打印到每一列中。

和:

{% for date in x.date %}
<tr><td>{{ date|tojson|safe }}</td></tr>
{% endfor %}

{% for users in x.users %}
<tr><td>{{ users }}</td></tr>
{% endfor %}

它只是将所有内容打印到第一列。

这些实验和许多其他死胡同让我相信,根据我当前的数据结构,没有简单的方法来构建我想要的表。

鉴于此,我有两个问题:
1) 我将如何使用我当前的数据结构构建表?
2) 为该用例构建数据的标准或理想方式是什么?

提前致谢。

最佳答案

如您所说,您可以更改数据结构或更改模板代码。这是保持当前结构的一种方法:

{% for row_index in range(x['date']|count) %}
<tr>
<td>{{ x[row_index]['date']|tojson|safe }}</td>
<td>{{ x[row_index]['users'] }}</td>
</tr>
{% endfor %}

或者您可以在 python 中重组您的数据:

x = zip(x['date'], x['users'])

然后使用这个模板:

{% for row in x %}
<tr>
<td>{{ row[0]|tojson|safe }}</td>
<td>{{ row[1] }}</td>
</tr>
{% endfor %}

您还可以构造数据,使模板不依赖于单元格的顺序:

from itertools import izip
x = [dict(date=d, user=u) for d, u in izip(x['date'], x['users'])]

然后您可以像这样访问您的数据:

{% for row in x %}
<tr>
<td>{{ row['date']|tojson|safe }}</td>
<td>{{ row['user'] }}</td>
</tr>
{% endfor %}

关于python - 如何构建数据以在 Flask 中轻松构建 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13315883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com