首页 > 其他分享 >学习笔记——Django项目中的F对象,Q对象,聚合函数,排序

学习笔记——Django项目中的F对象,Q对象,聚合函数,排序

时间:2022-09-30 20:45:02浏览次数:52  
标签:__ readcount gt 查询 对象 BookInfo1 Django objects 排序

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")

 

标签:__,readcount,gt,查询,对象,BookInfo1,Django,objects,排序
From: https://www.cnblogs.com/isDaHua/p/16744842.html

相关文章

  • Java实现6种常见排序
    1.冒泡排序(BubbleSort)第0轮3141592653589第1轮1314526535899第2轮1134255356899第3轮11324535568......
  • 关于对象存储服务OBS,你真的了解么?
    自2015年提出“互联网+”以来,互联网信息技术对于企业发展的帮助作用越来越大,众多企业通过借助网络信息技术实现利润增值,企业对于网络信息数据也越来越依赖。 但网络信息数......
  • 【Django-rest-framework框架】第04回 视图集
    目录1.两个视图基类1.1GenericAPIview属性和方法1.2基于APIView写5个接口1.3基于GenericAPIview写5个接口2.5个视图扩展类3.9个视图子类4.视图集5.源码分析ViewSet......
  • Django - annotate 计算某个字段值总和
     # annotateclassUser(models.Model):status=models.SmallIntegerField(verbose_name="status",default=1)jifen=models.IntegerField(verbose_name=......
  • 【学习笔记】分页和排序
    分页和排序排序关键字:ORDERBY升序:ASC降序:DESC我们以学生成绩的升序降序为例,将学生排序语法:ORDERBY字段名DESC/ASCSELECTs.studentno,studentname,subjectna......
  • net List集合 只改变对象中的某一个属性
    classStudent{publicstringId{get;set;}publicstringName{get;set;}}List<Student>list=newList<Student>()list.add(newStudent{Id=1,Name="名......
  • 冒泡排序
    inta[]={23,1,55,7,4,2};intn=6,i,j,temp;for(i=1;i<6;i++)//趟数{for(j=0;j<n-i;j++)//每趟的顺序比较 if(a[j]>a[j+1]) {......
  • 按照结构体的某个字段排序
     问题typeTFault1struct{  New    int32  Closed  int32}http-json接口返回后{“Closed”:123,"New":456}希望返回{“New”123,"Closed......
  • 学习笔记——Django项目的删除数据、查询数据(filter、get、exclude)
    2022-09-30删除数据:方式一:打开pycharm,进入虚拟环境,进入shell环境(pythonmanage.pyshell)。删除数据,接上面的笔记——“学习笔记——Django项目的新增数据、修改数据”......
  • SQL之排序检索数据
     ORDERBY子句必须是SELECT语句中最后一条子句1、排序数据1select2col_name3from4table_name5orderby6col_name;2、按多个列排序1select2col_name,......