DJ
必知必会13条
all():查询所有结果
filter(**kwargs) 过滤,取到符合条件的对象,比get方法好,找不到会返回空
get(**kwargs) 取到符合条件对象,对象有且只有一个,找不到会报错
exclude(**kwargs)包含了与所给筛选条件不匹配的对象
values(*field) 返回一个ValueQuerySet,得到是字典序列,里面是对象的属性
values_list(*field) 和values相似,不过返回的是元祖
order_by(*field) 对查询结果排序
reverse(): 对查询结果反向排序
distinct(): 从返回结果中消除重复记录
count():从返回的QuerySet数据类型中,查询里面对象的个数,返回的数字
first() :返回第一条记录
last() :返回最后一条记录
exists(): 在QuerySet数据类型中查询数据,有返回True,没有返回Flase
单表查询的双下划线用法:
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]) 和 上面相反
models.TB1.objects.filter(name__contains='ven') 名字中包含‘ven’的对象
models.TB1.objects.filter(name__icontains='ven') 对大小写不敏感
models.TB1.objects.filter(id__range=[1,3]) id范围1到3的对象
models.TB1.objects.filter(first_day__year=2017) first_day 年份等于2017的
类似的还有startswith ,isstartswith,endwith,isendwith