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 中的所有记录,但在模板上显示最后一条的主要内容,如果未能解决你的问题,请参考以下文章

根据模板打印所有数据动态配置

Excel:打印所有工作簿,但在打印之前刷新(重新计算)每个选项卡

从基于类的视图模板中的 django 打印变量

为什么我不能在条件中使用这个django模板变量?

模板中的Django“显示一次”

Django logging日志模块详解(日志记录模板配置)