django 打印 cmd 中的所有记录,但在模板上显示最后一条
Posted
技术标签:
【中文标题】django 打印 cmd 中的所有记录,但在模板上显示最后一条【英文标题】:django print all record in the cmd but display the last one on template 【发布时间】:2020-02-08 15:14:01 【问题描述】:我有一个函数可以从我使用 fetchall() 然后 for 循环的 sql server 数据库中检索数据 检索到的数据都打印在 cmd 控制台上,但是当我尝试在模板上显示这些结果时,它只显示最后一条记录。
views.py
def 搜索(请求):
query = cursor.execute('Select id, fullname from person')
result = query.fetchall()
for row in result:
print("ID==>",id)
IPD=row[0]
return render(request,"test.html","IPD":IPD)
test.html
IPD
【问题讨论】:
result
包含您的所有结果,IPD
在 for 循环的每次迭代中都会重新分配,因此将是上次迭代中分配的任何内容 -> results
中的最后一项
如果你只想得到我写的所有 ID result[0]
,你说什么?
返回result
。如果您使用的是 Django,我建议您使用 Django 的 ORM
我不能使用 ORM 我正在将原始 sql 与 sql server 数据库一起使用 --- 如果我返回结果,它将包含所有字段,我想要的只是返回所有记录的 ID跨度>
pypi.org/project/django-mssql-backend
【参考方案1】:
query = cursor.execute('Select id, fullname from person')
result = query.fetchall()
IPD=[]
for row in result:
print("ID==>",id)
IPD.append(row)
return render(request,"test.html","IPD":IPD)
【讨论】:
感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。以上是关于django 打印 cmd 中的所有记录,但在模板上显示最后一条的主要内容,如果未能解决你的问题,请参考以下文章