Django框架(12.Django中模型类高阶查询(Q对象以及F对象 和聚合函数查询))
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对象 和聚合函数查询))相关推荐
- Django框架(6.django后台管理/通过后台对数据表的增删改)
1.django项目中的admin.py 即: 后台管理相关文件 使用Django提供的相关管理机制的步骤 1.本地化 语言和时区的本地化 ( 修改项目中的settings.py的文件) 2 ...
- Django框架(14.Django中模型类的关系,以及模型类关联查询)
Django中模型类的关系,以及模型类关联查询 1.模型类关系 1.1 一对多关系 1.2多对多关系 1.3 一对一关系 1.4 一对多举例: 1.5 多对多举例: 1.6 一对一举例: 2.关联查询 ...
- Django(part49)--用Django自带的User模型类进行模拟登录
学习笔记,仅供参考 用Django自带的User模型类进行模拟登录 基于上个Blog中学习的用户认证系统,我们再用Django自带的User模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉 ...
- Django框架(19.Django中获取url的参数(位置参数以及关键字参数))
捕获url参数 进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数. 位置参数 位置参数,参数名可以随意指定 ...
- 数组中常用的高阶方法
一.操作方法 1.concat 如果传递的参数是一个数组或者多个数组,那么会将多个数组的每一个项都添加到原来的数组后面,然后返回这个数组,原数组不变. 例如: 2.slice slice方法接受两个参 ...
- Python中常用的高阶函数
Python 中常用的高阶函数 ① filter(function,iterable)filter(function, iterable)filter(function,iterable) 过滤器 ...
- Django框架(16.Django中的模型类管理器以及自定义管理器)
模型类.objects.all()->objects是一个什么东西呢? 答:objects是Django帮我自动生成的管理器对象,通过这个管理器可以实现对数据的查询. objects是model ...
- Django框架(11.Django中的通过模型类查询数据以及相关函数和条件)
Django中的查询函数 通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询. 不管哪个函数注意返回值的类型 函数名 功能 返回值 说明 get 返回表中满足条件的 ...
- Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)
Django中的模型类的定义以及模型类字段属性和选项 1.模型类的定义 2.模型类属性命名限制 2.1字段类型和属性 2.2选项 1.模型类的定义 ORM:表就代表类,字段代表属性 模型类需要继承自m ...
最新文章
- 为什么 Java 中“1000==1000”为false,而”100==100“为true?
- python基础——迭代器与生成器
- Android开发之旅:android架构
- VC程序调试技术,一些工具上和具体的问题,包括内存检测
- 深度学习《CNN架构续篇 - 1乘1卷积》
- service.php,service.php
- 详解Python切片技术
- 专为人工智能和数据科学而生的Go语言,或将取代Python
- PHP常用函数集合(可做桌面壁纸)
- 一文详解什么是空洞卷积?
- SpringBoot静态资源处理(九)
- 罗格斯的计算机科学博士奖学金,本科直博如何“牛”转乾坤斩获全奖博士录取,师兄制胜申请经历大揭秘!...
- yum升级mysql_3分钟,YUM升级MYSQL,5.1到5.6
- 2021-07-14软件测试实习所学内容
- 利用python flask框架搭建算法接口遇到的错误汇总
- 中国医科大学2021年12月《中医护理学基础》作业考核试题
- php图片转换软件,能能图片格式转换器 支持主流图片格式批量转换,简单实用的图片转换软件...
- Android Okio应用及解析
- STC89C52RC单片机控制流水灯
- 腾讯自研新一代AV1编解码器
热门文章
- Docker-操作容器1
- SQL——字段分组合并
- Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
- Windows——右键菜单显示“管理员取得所有权”选项
- android 文本左对齐,在Android中与文本左可绘制对齐
- springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
- 如何使用Graphics2D在一张图片上画线(包括箭头)
- 操作系统 实验3【动态分区存储管理】
- C++阶段01笔记05【数组(概述、一维数组、二维数组)】
- 解决Dialog 消失,输入法不消失的问题