zoukankan      html  css  js  c++  java
  • 12)django-ORM(单表返回数据3种方式)

    单表查询还回数据有3种形式,返回形式不一样,模板调用方式不同

    1)返回Queryset里面内容为对象:Business.objects.all() 这里内容显示是对象

    2)返回Queryset里面内容为字典:Business.objects.all().values("id","caption")这里内容是字典

    3)返回Queryset里面内容为元组:Business.objects.all().values_list("id","caption")这里显示是元组

    
    
       class Business(models.Model):
      caption=models.CharField(max_length=32)
      code=models.CharField(max_length=32,null=True,default="SA")  

      #1) v1
    =Business.objects.all() #Queryset #[obj(id,caption,code),obj(id,caption,code),obj(id,caption,code)]
      #2)
    v2=Business.objects.all().values("id","caption") #Queryset,注意这里列表不是对象了,是字典 #[{"id":1,"caption":"运围部"},{"id":1,"caption":"运围部"}]   #3) v3=Business.objects.all().values_list("id","caption") #Queryset,注意这里列表不是对象了,返回的是元组 #[(1,“运围部”),(2,“运围部”)] return render(request,"business.html",{"v1":v1,"v2":v2,"v3":v3})
    -------------------------------------
     
     模板:
      1)
    <ul> {% for row in v1 %} <li>{{ row.id }} {{ row.caption }} {{ row.code }}</li> {% endfor %} </ul>   2) <ul> {% for row in v2 %} <li>{{ row.id }} {{ row.caption }}</li> {% endfor %} </ul>
      3) <ul> {% for row in v3 %} <li>{{ row.0 }} {{ row.1 }}</li> {% endfor %} </ul> values queryset是字典,values_list是queryset下是元组,其他返回都是queryset下是对象 models.Business.objects.get(id=1)直接返回是一个对象,不存在会报错 如何解决: models.Business.objects.filter(id=1).first()会更好
  • 相关阅读:
    AndroidApplication Fundamentals(Android应用基础)
    当汇错款时该怎么办?
    VS2005控制台程序修改nb0文件
    nand flash 扇区的管理以及初始化
    Androidz之Activity概要学习
    Android开发者必备的42个链接
    Android Activity形象描述
    一个前端妹子的悲欢编程之路
    提高工作效率的几个小技巧
    前端几个常用简单的开发手册拿走不谢
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/7765448.html
Copyright © 2011-2022 走看看