gpt4 book ai didi

python - 在 python 中对 SQL 查询的结果进行分组以显示在页面上

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:43 25 4
gpt4 key购买 nike

我在 views.py 文件中运行 SQL 查询,根据返回的值,我需要在 .html 文件的列中显示不同的数据。

如果:

customer_id 不为null,则detail 列应显示customer_id 和name。

如果:

customer_id为null,则detail栏应显示部门名称和描述。

因此,数据库中有数字。有些分配给客户,有些分配给部门。该表的基本目的是显示数字列表及其分配给的对象。

@render_to('customer/available_numbers.html')
def AvailableNumbers(request):
cur = NumberList()

sql = '''
SELECT
cpt.number,
cpt.call_type,
cpt.customer_id,
cpt.profile_id
c.name,
pro.department_name,
pro.description
FROM customerphonetable AS cpt
LEFT OUTER JOIN customer AS c
ON (cpt.customer_id = c.customer_id)
LEFT OUTER JOIN profile AS pro
ON (cpt.profile_id = pro.profile_id)
WHERE cpt.number IS NOT NULL
'''

cur.execute(sql)

rows = [dictify(row) for row in cur]

return dict(rows=rows, cnt=len(rows))

def dictify(row):
return dict(zip([cd[0] for cd in row.cursor_description], row))

NumberList() 连接到数据库。

html 文件设置为显示如下数据:

{% block content %}
<table class ="table table-striped table-bordered">
<thead>
<tr>
<th>Phone Number</th>
<th>Call Type</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
<td>{{ row.number }}</td>
<td>{{ row.call_type }}</td>
<td>{{ ???? }}</td>
</tr>
{% endfor %}
</tbody>
</table>

我已经测试了 SQL 查询,它从数据库中提取了正确的数据。我迷失了如何过滤结果并根据条件正确显示输出。

有什么建议吗?如果我遗漏任何信息,请告诉我。谢谢。

最佳答案

你可以尝试这样的事情:

{% for row in rows %}
<tr>
<td>{{ row.number }}</td>
<td>{{ row.call_type }}</td>
{% if row.customer_id %}
<td>{{ row.costumer_id }}</td>
{% else %}
<td>{{ row.department_name }}{{ row.description }}</td>
{% endif %}
<td>{{ ???? }}</td>
</tr>
{% endfor %}

我不知道您使用的是什么框架或 ORM(如果有的话),但您可以尝试使用类似的变体:

{% ifequal row.costumer_id NULL %}
{% ifequal row.costumer_id None %}
...

关于python - 在 python 中对 SQL 查询的结果进行分组以显示在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323810/

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