码迷,mamicode.com
首页 > 其他好文 > 详细

Django中get()和fiter()的区别

时间:2018-08-18 20:14:46      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:取数   keyword   filter   objects   number   django   for   执行   关于   

QuerySet(查询结果集对象):从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet,也就是指服务器上的url里面的查询内容。Django会对查询返回的结果集QuerySet进行cache缓存,这是为了提高查询效率。也就是说,在你创建一个QuerySet对象的时候,Django并不会立即向数据库发出查询命令,只有在你需要用到这个QuerySet的时候才会这样做。

Objects是django实现的mvc中的m,Django中的模型类都有一个objects对象,它是一个Django中定义的QuerySet类型的对象,它包含了模型对象的实例。

关于Django objects.all()、objects.get()与objects.filter()直接区别
示例代码:

ret=UserInfo.objects.all()
  • 1

all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据。

ret=UserInfo.objects.get(id=‘1‘)
  • 1

get返回的是Model对象,类型为列表,说明使用get方法会直接执行sql语句获取数据

ret=UserInfo.objects.filter()
Person.objects.get(name="WeizhongTu"# 名称为 WeizhongTu 的一条,多条会报错
 
get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter
Person.objects.filter(name="abc"# 等于Person.objects.filter(name__exact="abc") 名称严格等于 "abc" 的人

Django中get()和fiter()的区别

标签:取数   keyword   filter   objects   number   django   for   执行   关于   

原文地址:https://www.cnblogs.com/chaojiyingxiong/p/9498397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!