Q对象

作用:用于查询时条件之间的逻辑关系。not and or,可以对Q对象进行  &  |  ~  操作。

& : 且        | :  或          ~ :非: 就是否定的意思

使用之前需要先导入:

from django.db.models import Q

例: 查询id大于3且阅读量大于30的图书的信息     Bookinfo(模型类)

之前不用Q对象的时候:BookInfo.objects.filter(id__gt=3, bread__gt=30)   只能用来查且的条件,不能用来查或的条件

用Q对象                       BookInfo.objects.filter(Q(id__gt=3)&Q(bread__gt=30))   Q对象 且或都可以

 例:查询id大于3或者阅读量大于30的图书的信息。

BookInfo.objects.filter(Q(id__gt=3)|Q(bread__gt=30))

 例:查询id不等于3图书的信息

BookInfo.objects.filter(~Q(id=3))         注意:~ 带表非的意思

F对象

作用:用于类属性之间的比较

使用之前需要先导入

from django.db.models import F

例:查询图书阅读量大于评论量图书信息。

     BookInfo.objects.filter(bread__gt=F('bcomment'))

例:查询图书阅读量大于2倍评论量图书信息。

     BookInfo.objects.filter(bread__gt=F('bcomment')*2)

 聚合函数

作用:对查询结果进行聚合操作。

sum count avg max min

使用前需先导入聚合类

from django.db.models import Sum,Count,Max,Min,Avg

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

1.   aggregate:调用这个函数来使用聚合。 返回值是一个字典

例:查询所有图书的数目。         返回的是一个字典         (查询所有的时候.all()可以省略)

BookInfo.objects.all().aggregate(Count('id'))        返回结果:{'id__count': 5}  返回的键名(对谁统计后面加上_ _count)

例:查询所有图书阅读量的总和。

BookInfo.objects.aggregate(Sum('bread'))             返回结果:{'bread__sum': 126}

2.  count函数 返回值是一个数字

作用:统计满足条件数据的数目。

例:统计所有图书的数目。

BookInfo.objects.all().count()

BookInfo.objects.count()

例:统计id大于3的所有图书的数目。    有条件的话,就先查询再count()

BookInfo.objects.filter(id__gt=3).count()

模型类查询函数总结

Django框架(12.Django中模型类高阶查询(Q对象以及F对象 和聚合函数查询))相关推荐

  1. Django框架(6.django后台管理/通过后台对数据表的增删改)

    1.django项目中的admin.py  即:  后台管理相关文件 使用Django提供的相关管理机制的步骤 1.本地化 语言和时区的本地化    ( 修改项目中的settings.py的文件) 2 ...

  2. Django框架(14.Django中模型类的关系,以及模型类关联查询)

    Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...

  3. Django(part49)--用Django自带的User模型类进行模拟登录

    学习笔记,仅供参考 用Django自带的User模型类进行模拟登录 基于上个Blog中学习的用户认证系统,我们再用Django自带的User模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉 ...

  4. Django框架(19.Django中获取url的参数(位置参数以及关键字参数))

    捕获url参数 进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数. 位置参数 位置参数,参数名可以随意指定   ...

  5. 数组中常用的高阶方法

    一.操作方法 1.concat 如果传递的参数是一个数组或者多个数组,那么会将多个数组的每一个项都添加到原来的数组后面,然后返回这个数组,原数组不变. 例如: 2.slice slice方法接受两个参 ...

  6. Python中常用的高阶函数

    Python 中常用的高阶函数 ① filter(function,iterable)filter(function, iterable)filter(function,iterable)   过滤器 ...

  7. Django框架(16.Django中的模型类管理器以及自定义管理器)

    模型类.objects.all()->objects是一个什么东西呢? 答:objects是Django帮我自动生成的管理器对象,通过这个管理器可以实现对数据的查询. objects是model ...

  8. Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)

     Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询.    不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...

  9. Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)

    Django中的模型类的定义以及模型类字段属性和选项 1.模型类的定义 2.模型类属性命名限制 2.1字段类型和属性 2.2选项 1.模型类的定义 ORM:表就代表类,字段代表属性 模型类需要继承自m ...

最新文章

  1. 为什么 Java 中“1000==1000”为false,而”100==100“为true?
  2. python基础——迭代器与生成器
  3. Android开发之旅:android架构
  4. VC程序调试技术,一些工具上和具体的问题,包括内存检测
  5. 深度学习《CNN架构续篇 - 1乘1卷积》
  6. service.php,service.php
  7. 详解Python切片技术
  8. 专为人工智能和数据科学而生的Go语言,或将取代Python
  9. PHP常用函数集合(可做桌面壁纸)
  10. 一文详解什么是空洞卷积?
  11. SpringBoot静态资源处理(九)
  12. 罗格斯的计算机科学博士奖学金,本科直博如何“牛”转乾坤斩获全奖博士录取,师兄制胜申请经历大揭秘!...
  13. yum升级mysql_3分钟,YUM升级MYSQL,5.1到5.6
  14. 2021-07-14软件测试实习所学内容
  15. 利用python flask框架搭建算法接口遇到的错误汇总
  16. 中国医科大学2021年12月《中医护理学基础》作业考核试题
  17. php图片转换软件,能能图片格式转换器 支持主流图片格式批量转换,简单实用的图片转换软件...
  18. Android Okio应用及解析
  19. STC89C52RC单片机控制流水灯
  20. 腾讯自研新一代AV1编解码器

热门文章

  1. Docker-操作容器1
  2. SQL——字段分组合并
  3. Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
  4. Windows——右键菜单显示“管理员取得所有权”选项
  5. android 文本左对齐,在Android中与文本左可绘制对齐
  6. springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
  7. 如何使用Graphics2D在一张图片上画线(包括箭头)
  8. 操作系统 实验3【动态分区存储管理】
  9. C++阶段01笔记05【数组(概述、一维数组、二维数组)】
  10. 解决Dialog 消失,输入法不消失的问题