13个查询API接口
# exclude排除 # 返回结果为queryset类型数据,通过objects控制器可以调用,queryset类型数据也能调用 # obj_list = models.Book.objects.exclude(id=2) # obj_list = obj_list.filter(title='少年阿宾1') # obj_list = obj_list.all() # obj_list = models.Book.objects.exclude(id=2).filter(title__contains='少年').exclude(id=5) # order_by 排序 # 返回结果为queryset类型数据,queryset类型数据可以调用这个方法 # obj_list = models.Book.objects.all().order_by('-id') #-id加个-号表示按照该字段降序排列, desc asc # '''select * from app01_book order by id desc;''' # obj_list = models.Book.objects.all().order_by('price', '-id') #按照价格升序排列,价格相同的按照id降序排列 # reverse() # 翻转必须在排序数据的基础上 # 返回结果为queryset类型数据,queryset类型数据可以调用这个方法 # obj_list = models.Book.objects.all().order_by('-id').reverse() # count # queryset类型数据可以调用这个方法,返回值为数字 # obj_list = models.Book.objects.all().count() # first\last # queryset类型数据可以调用这个方法,返回值为模型类对象 # obj_list = models.Book.objects.all().first() # obj_list = models.Book.objects.all()[0] # obj_list = models.Book.objects.all().last() # exists # 判断查询结果是有数据 # queryset类型数据可以调用这个方法 # obj_list = models.Book.objects.all().exists() #判断是否有数据的效率高,只找一条记录 limit 1 # values # 可以获取指定字段数据 # objects可以调用, queryset也能调用,返回结果还是queryset,内容为一个个字典数据 # obj_list = models.Book.objects.values('title', 'price') # obj_list = models.Book.objects.filter(id=5).values('title', 'price') # values_list # 可以获取指定字段数据,返回结果还是queryset,内容为一个个元组数据 # obj_list = models.Book.objects.values_list('title', 'price') # obj_list = models.Book.objects.filter(id=5).values_list('title', 'price') # distinct 去重 # 一般配合values和values_list来使用 obj_list = models.Book.objects.values('price').distinct() print(obj_list)