发布时间:2022-10-04 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印

2022-09-30

F对象:

  在shell中是用于两个有关联的属性之间的查询。

使用实例:

查询书籍表中阅读量大于评论量的记录

前提,进入pycharm,进入虚拟环境,进入shell环境。

首先,要使用F对象,那么就需要导入F对象

from django.db.models import F

后进行查询

BookInfo1.objects.filter(readcount__gt = F("commentcount"))

-------------------------------

Q对象

  同F对象类似,可用于“与”,“或”,“非”的查询

首先导入包含Q的模块,

from django.db.models import Q

(1)查询id>2而且阅读量大于100的图书

BookInfo1.objects.filter(Q(id__gt = 2)&Q(readcount__gt = 100))

(2)查询id>8或者阅读量大于50的图书

BookInfo1.objects.filter(Q(id__gt = 8)|Q(readcount__gt = 50))

(3)查询不包含编号为3的图书

BookInfo1.objects.filter(~Q(id__gt = 3))

------------------------

聚合函数

聚合函数的类型有5个,Sum,Max,Min,Avg,Count

实例:

首先,需要导入包含的聚合函数的模块,如果使用Sum,就导入Sum,例:

from django.db.models import Sum

查询书籍表中阅读量的总和

BookInfo1.objects.aggregate(Sum("readcount"))

  注:此处的聚合函数使用的是“aggregate”,而不是“aggredation”。是一个动词。

---------------------------------

排序

在Django项目中的表单中,排序默认是按照 升序 进行排序。如果想要进行降序的话,就在要排序的属性前面加上一个负号。

实例:

在书籍表中按照阅读量进行排序,默认为升序

BookInfo1.objects.all().order_by("readcount")

按照降序排列

BookInfo1.objects.all().order_by("-readcount")