一般的操作
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