#一般查询即单表内查询 print(Author.objects.all()) print(Author.objects.order_by('first_name')[0]) #第0个表示id=1 #关联查询 Book与publisher是FK关系 obj=Book.objects.get(publisher__name__contains='吉林') #只适合出版社包含一本书的查找 print(obj) #返回的是该出版社相关的书的名字 #两个字段比较大小 objs=Book.objects.filter(count__lt=F('book_comment')) #找到count<book_comment的Book F()专门取函数的某列值操作,执行不经过python解释器,不经过本机内存,是生成 SQL语句的执行。 print(objs) #复杂查询 objs=Book.objects.filter(Q(count__lt=F('book_comment'))|Q(publisher_date__gt='2018-05-08')) #Q函数为对对象的复杂查询 print(objs) #聚合查询 print(Book.objects.all().aggregate(Avg('book_comment'),Sum('book_comment'),Max('book_comment'))) #聚合 求均值 等 pub_obj=Publisher.objects.first() #聚合 print(pub_obj) print(pub_obj.book_set.select_related()) pub_objs=Publisher.objects.annotate(book_nums=Count('book')) #分类聚合 for pub_obj in pub_objs: print(pub_obj.book_nums) print(Book.objects.values_list('publisher_date').annotate(Count('publisher_date'))) #对表内字段的分类聚合
django---orm 进阶查询
最新推荐文章于 2023-11-21 14:03:00 发布