Django的model操作中一些常用的小点
Posted bainianminguo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django的model操作中一些常用的小点相关的知识,希望对你有一定的参考价值。
一、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操作中一些常用的小点的主要内容,如果未能解决你的问题,请参考以下文章