如何在 2 个不同的 table html 上分离数据库
How to separate database on 2 different table html
例如我有数据库
id
account_id
date
1
127
2022-04-25
2
128
2022-04-25
3
127
2022-04-24
4
128
2022-04-24
而且我需要在 2 个不同的 table 上将其分开:
account_id
date header
127
2022-04-25
127
2022-04-24
128同理
这是我的代码 1 table,我不知道如何分开
@bp.route('/')
def main():
wcms = Wcm.query.order_by(Wcm.date.desc()).all()
return render_template('table.html', wcms=wcms)
HTML:
<table class="table table-hover table-dark wcm">
<thead>
<tr>
<th>Date</th>
<th>WCM account ID</th>
<th>Number of standard tags</th>
<th>Number of extended tags</th>
</tr>
</thead>
<tbody>
{% for wcm in wcms %}
<tr>
<td>{{ wcm.date }}</td>
<td>{{ wcm.account_id }}</td>
<td>{{ wcm.nbm_stardart_tags }}</td>
<td>{{ wcm.nbm_custom_tags }}</td>
</tr>
{% endfor %}
</tbody>
</table>
为了使下面的代码正常工作,我们需要先按分组值对数据进行排序。既然要分开帐号ID,我就选择了ASC。
wcms = Wcm.query.order_by(Wcm.account_id.asc(), Wcm.date.desc()).all()
lambda returns 将所有条目收集到一个列表中的帐户 ID。 groupby returns list
of tuples
,需要调用 list()
来评估创建组的惰性迭代器。外部列表理解创建了那些分组的 Wcm 列表的列表。
wcms_by_account = [
list(wcm_group)
for acc_id, wcm_group
in groupby(wcms, lambda x: x.account_id
]
列表结构:
[
[
Wcm(account_id=127, date=2022-04-25, ...),
Wcm(account_id=127, date=2022-04-24, ...),
],
[
Wcm(account_id=128, date=2022-04-25, ...),
Wcm(account_id=128, date=2022-04-24, ...),
],
...
]
然后更改您的 Web 模板以处理列表列表,为每个内部列表创建一个新的 table。
{% for wcms in wcms_by_account %}
<table class="table table-hover table-dark wcm">
<thead>
<tr>
<th>Date</th>
<th>WCM account ID</th>
<th>Number of standard tags</th>
<th>Number of extended tags</th>
</tr>
</thead>
<tbody>
{% for wcm in wcms %}
<tr>
<td>{{ wcm.date }}</td>
<td>{{ wcm.account_id }}</td>
<td>{{ wcm.nbm_stardart_tags }}</td>
<td>{{ wcm.nbm_custom_tags }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endfor %}
例如我有数据库
id | account_id | date |
---|---|---|
1 | 127 | 2022-04-25 |
2 | 128 | 2022-04-25 |
3 | 127 | 2022-04-24 |
4 | 128 | 2022-04-24 |
而且我需要在 2 个不同的 table 上将其分开:
account_id | date header |
---|---|
127 | 2022-04-25 |
127 | 2022-04-24 |
128同理
这是我的代码 1 table,我不知道如何分开
@bp.route('/')
def main():
wcms = Wcm.query.order_by(Wcm.date.desc()).all()
return render_template('table.html', wcms=wcms)
HTML:
<table class="table table-hover table-dark wcm">
<thead>
<tr>
<th>Date</th>
<th>WCM account ID</th>
<th>Number of standard tags</th>
<th>Number of extended tags</th>
</tr>
</thead>
<tbody>
{% for wcm in wcms %}
<tr>
<td>{{ wcm.date }}</td>
<td>{{ wcm.account_id }}</td>
<td>{{ wcm.nbm_stardart_tags }}</td>
<td>{{ wcm.nbm_custom_tags }}</td>
</tr>
{% endfor %}
</tbody>
</table>
为了使下面的代码正常工作,我们需要先按分组值对数据进行排序。既然要分开帐号ID,我就选择了ASC。
wcms = Wcm.query.order_by(Wcm.account_id.asc(), Wcm.date.desc()).all()
lambda returns 将所有条目收集到一个列表中的帐户 ID。 groupby returns list
of tuples
,需要调用 list()
来评估创建组的惰性迭代器。外部列表理解创建了那些分组的 Wcm 列表的列表。
wcms_by_account = [
list(wcm_group)
for acc_id, wcm_group
in groupby(wcms, lambda x: x.account_id
]
列表结构:
[
[
Wcm(account_id=127, date=2022-04-25, ...),
Wcm(account_id=127, date=2022-04-24, ...),
],
[
Wcm(account_id=128, date=2022-04-25, ...),
Wcm(account_id=128, date=2022-04-24, ...),
],
...
]
然后更改您的 Web 模板以处理列表列表,为每个内部列表创建一个新的 table。
{% for wcms in wcms_by_account %}
<table class="table table-hover table-dark wcm">
<thead>
<tr>
<th>Date</th>
<th>WCM account ID</th>
<th>Number of standard tags</th>
<th>Number of extended tags</th>
</tr>
</thead>
<tbody>
{% for wcm in wcms %}
<tr>
<td>{{ wcm.date }}</td>
<td>{{ wcm.account_id }}</td>
<td>{{ wcm.nbm_stardart_tags }}</td>
<td>{{ wcm.nbm_custom_tags }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endfor %}