Django模型---查询

本文介绍了Django模型的查询操作,包括使用all(), filter(), exclude()等方法筛选查询集,order_by()进行排序,values()返回字典列表,以及get()获取单个对象,count(), first(), last()和exists()等方法。查询集具有惰性执行特点,直到实际访问数据时才执行数据库操作。" 78294902,5803113,使用BFS+SPFA解决华容道问题,"['算法', '图论', '搜索算法', '编程竞赛', '动态规划']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----查询集是经过筛选出来的对象集合

1.得出查询集的方法(过滤器)

    得到一个集合

  • all()                #得到全部
  • filter()            #得到符合条件的,经常和isDelete组合使用
  • exclude()        #得到不符合条件的
  • order_by()
  • values():       #一个对象构成一个字典,然后构成一个列表返回,用于给网页返回数据

    得到的集合可以使用下标来得出一个新的查询集,不会被立即执行

             注意:不支持负数索引    

                      如果获取一个对象,直接使用[0],等同于[0:1].get(),但是如果没有数据,[0]引发IndexError异常,[0:1].get()引发DoesNotExist异常

    得到一个值

  • get():返回单个满足条件的对象
    • 如果未找到会引发"模型类.DoesNotExist"异常
    • 如果多条被返回,会引发"模型类.MultipleObjectsReturned"异常
  • count():返回当前查询的总条数
  • first():返回第一个对象
  • last():返回最后一个对象
  • exists():判断查询集中是否有数据,如果有则返回True


2.查询集的特点

    惰性执行:创建查询集不会带来任何数据库的访问,直到调用数据时,才会访问数据库

                         何时对查询集求值:迭代,序列化,与if合用

querylist=Entry.objects.all()        #不会访问数据库
print([e.title for e in querylist])  #执行print时才访问数据库
print([e.title for e in querylist])


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值