首页 > 其他 > 详细

Django的model操作中一些常用的小点

时间:2018-09-20 00:27:50      阅读:286      评论:0      收藏:0      [点我收藏+]

一、django的orm的13种基本的查询方法

1、all方法,查询某张表中的所有的数据

user_obj_list = models.Person.objects.all()

  

返回的结果是queryset对象,也就是一个对象的集合

<QuerySet [<Person: 人的对象小黑9>, <Person: 人的对象小黑8>, <Person: 人的对象小黑7>, <Person: 人的对象小黑6>, <Person: 人的对象小黑5>, <Person: 人的对象小黑4>, <Person: 人的对象小黑3>, <Person: 人的对象小黑2>, <
Person: 人的对象小黑19>, <Person: 人的对象小黑18>, <Person: 人的对象小黑17>, <Person: 人的对象小黑16>, <Person: 人的对象小黑15>, <Person: 人的对象小黑14>, <Person: 人的对象小黑13>, <Person: 人的对象小黑12>, <Pers
on: 人的对象小黑11>, <Person: 人的对象小黑10>, <Person: 人的对象小黑1>, <Person: 人的对象小黑0>]>

  

2、filter方法,查询符合某个条件的所有的数据

user_objs = models.Person.objects.filter(name="小黑7")

 

返回的结果也是一个queryset对象,也就是一个对象的集合

<QuerySet [<Person: 人的对象小黑7>]>

  

3、get方法,返回的单个对象

user_obj = models.Person.objects.get(name="小黑7")

  

返回的是单个对象

人的对象小黑7

  

# 返回的时候某一个具体的对象,如果这个条件的对象不存在,会报错

 

4、exclude方法,对条件取反

user_obj = models.Person.objects.exclude(id__gte=4)

  

返回的是一个queryset对象的

exclude方法 <QuerySet [<Person: 人的对象小黑2>, <Person: 人的对象小黑1>, <Person: 人的对象小黑0>]>

  

 

5、values方法,查询一个queryset对象的值

user_obj = models.Person.objects.exclude(id__gte=4).values("id","name","birthday_1")

  

返回的是一个一个queryset的对象集合,是一个大的列表,每个列表的元素又是每个对象的小字典

<QuerySet [{‘id‘: 3, ‘name‘: ‘小黑2‘, ‘birthday_1‘: datetime.datetime(2016, 12, 6, 0, 0)}, {‘id‘: 2, ‘name‘: ‘小黑1‘, ‘birthday_1‘: datetime.datetime(2016, 5, 13, 0, 0)}, {‘id‘: 1, ‘name‘: ‘小黑0‘, ‘birthday_1‘:
datetime.datetime(2016, 3, 5, 0, 0)}]>

  

6、values_list,查询一个queryset对象的值

user_obj = models.Person.objects.exclude(id__gte=4).values_list("id", "name", "birthday_1")

  

返回的是一个queryset对象,这个对象是一个列表,列表中的每个元素是每个对象的元组信息

 

<QuerySet [(3, ‘小黑2‘, datetime.datetime(2016, 12, 6, 0, 0)), (2, ‘小黑1‘, datetime.datetime(2016, 5, 13, 0, 0)), (1, ‘小黑0‘, datetime.datetime(2016, 3, 5, 0, 0))]>

  

7、order_by,根据某个字段排序,如果字段加一个负号,则是逆序排序,如果不加,则则是正序排列

user_obj = models.Person.objects.exclude(id__gte=4).order_by("-id")

  

返回的结果也是一个queryset对象

<QuerySet [<Person: 人的对象小黑2>, <Person: 人的对象小黑1>, <Person: 人的对象小黑0>]>

  

user_obj = models.Person.objects.exclude(id__gte=4).order_by("id")

  

返回的结果也是一个queryset对象

<QuerySet [<Person: 人的对象小黑0>, <Person: 人的对象小黑1>, <Person: 人的对象小黑2>]>

  

 

8、reverse方法,对一个有序的queryset对象,做反转操作

user_obj = models.Person.objects.exclude(id__gte=4).order_by("-id").reverse()

  

返回的结果

<QuerySet [<Person: 人的对象小黑0>, <Person: 人的对象小黑1>, <Person: 人的对象小黑2>]>

  

9、distance方法,对返回的数据去重,在外键中用的比较多

 

10、count方法,统计查询到的数据的个数

 

11、first方法,在queryset对象中返回查询到的第一条数据

 

12、last方法,在queryset对象中返回查询到的最后一条数据

 

13、exists方法,判断用指定的过滤条件查询是否有值

 

Django的model操作中一些常用的小点

原文:https://www.cnblogs.com/bainianminguo/p/9678408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!