Django_ORM相关操作

时间:2022-11-02 18:51:34

一般的操作

1.all():查询所有的结果

2.filter():包含与所有筛选条件匹配的对象

3.get():返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果对象没有或者超过一个会报错

4.exclude():包含了与所有筛选条件不匹配的对象

5.values():返回一个可迭代的字典序列

6.values_list():返回一个元组序列

7.order_by:对查询结果排序

8.reverse():对查询结果反向排序

9.distinct():剔除重复记录

10.count():返回拆线呢匹配对象的数量

11.first():返回第一条记录

12:last():返回最后一条记录

13:exists():queryset中是否包含数据,返回true/false

单表查询神奇的双下划线

models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值

models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in

models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的
models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感

models.Tb1.objects.filter(id__range=[1, 3]) # id范围是1到3的,等价于SQL的bettwen and

类似的还有:startswith,istartswith, endswith, iendswith 

date字段还可以:
models.Class.objects.filter(first_day__year=2017)

Foreignkey操作

1.正向查找:

语法:对象.关联字段.字段

2.反向查找

语法:obj.表名_set