内容简介:Django的日常使用中,我们会用到Model中的get和filter方法,今天说说两者的区别。为了更好地说明问题,先定义一个Model模拟数据:
Django的日常使用中,我们会用到Model中的get和filter方法,今天说说两者的区别。
为了更好地说明问题,先定义一个Model
class User(models.Model): name = models.CharField('姓名',max_length=20,default='') age = models.CharField('年龄',max_length=20,default='')
模拟数据:
User数据: id name age 1 zhangsan 17 2 lisi 17
一、先说说Django的get用法:
如果我们想要获取到一个name是zhangsan的User:
user = User.objects.get(name="zhangsan")
这时会获取到一个name是zhangsan的用户对象
如果我想要获取到一个age是17的User:
user = User.objects.get(age="17")
这时就报错了,因为Get方法:只能获取到唯一值的对象结果。如果匹配到好几个对象,就会报错;如果一个也匹配不到,也会报错。
二、再说说Django的filter用法:
如果我们想要获取到一个name是zhangsan的User:
user = User.objects.filter(name="zhangsan")
此时会获取到一个Queryset对象,第一个对象是zhangsan的User对象,此对象跟get获取到的zhangsan是一样的
如果我们要获取到一个age是17的User:
user = User.objects.filter(age="17")
测试还是获取到一个Queryset对象,里边两个对象,一个是zhangsan的User对象,一个是lisi的User对象
如果我们获取一个不存在的对象时,会返回一个空的[],但是这个不是一个list,不能以list的操作方法进行
三、总结
两者的使用和区别,基本都讲清楚了,我最后想说一下我的想法:
如果有时我们不能确定数据库里是否有你要查询的数据时,我更多的建议大家使用filter方法,而不是用get。因为get可能会在查询不到数据时,代码就会报错,导致程序停止运行。
如果数据是确定存在的,通过get能够更准确的获取到你要的数据对象。
欢迎大家关注我的公众号:
##### 如果我的文档给您提供了帮助,请点击一下页面广告,给个支持! #####如有需要沟通的,请直接评论或者是邮件沟通。欢迎小主关注我的微信公众号:BigYoung成长之路,微信搜索可关注。如想交个朋友,可直接加入我的QQ群:615870353;或者加入我的知识星球:ID:45959491
BigYoung版权所有,转载请邮件(Mr_wang_yang@163.com)获取授权,并注明转自:http://www.bigyoung.cn/1079.html
以上所述就是小编给大家介绍的《Django中Model的Get和Filter区别》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript权威指南
弗拉纳根 / 东南大学出版社 / 2007-6 / 99.00元
《JavaScript权威指南(影印版)(第5版)》已经经过全面地修订和扩展,涵盖了构建当今Web2.0应用程序所需的JavaScript技术。《JavaScript权威指南(影印版)(第5版)》不仅是一本实例驱动的程序员指南,同时也是一本可以摆在桌边随时查阅的参考手册,它以全新的章节阐述了有效使用Javascript脚本所需要知道的一切,包括: 脚本化的HTTP和Ajax;XML处理;使用......一起来看看 《JavaScript权威指南》 这本书的介绍吧!