DRF全部查询基础示例

	from django.db.models import Q, F, Sum, Avg, Count, Min, Max
from rest_framework.response import Response
from rest_framework.views import APIView class ShowView(APIView):
def get(self, request): # 查询年龄等于19的数据
user = User.objects.filter(age=19)
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # 查询全部数据
user = User.objects.all()
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # 查询年龄等于19的数据的个数
user = User.objects.filter(age=19).count()
print(user,'--------------------------------')
return Response('ok') # 查询年龄不等于19的全部数据
user = User.objects.exclude(age=19)
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # 查询一个字段是否包含要查询的关键字
user = User.objects.filter(classrooms__address__contains='庆')
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # startswith,endswith 以指定值开头或结尾
user = User.objects.filter(classrooms__address__startswith='昌')
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) user = User.objects.filter(classrooms__address__endswith='区')
print(user)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # 查询一个字段是否为空
user = User.objects.filter(age__isnull=False)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # 范围查询
# in 在范围内 range 相当于between...and...
user = User.objects.filter(age__in =[ 1, 13,18, 19, 22])
user_obj = UserSer(user, many=True)
return Response(user_obj.data) user = User.objects.filter(age__range=[10, 20])
user_obj = UserSer(user, many=True)
return Response(user_obj.data) # ⽐较查询:
# gt      ⼤于
# gte     ⼤于等于
# lt      ⼩于
# lte     ⼩于等于
# exclude  不等于 # F对象和Q对象
# ⽐较两个字段对象之间的关系⽤F对象。(F对象可以进⾏运算)
user = User.objects.filter(age__gte=F('hight'))
user_obj = UserSer(user, many=True)
return Response(user_obj.data) user = User.objects.filter(age__gte=F('hight') * 2)
user_obj = UserSer(user, many=True)
return Response(user_obj.data) class HightsView(APIView): def get(self, request):
user_obj = User.objects.filter(Q(hight__gte=150) and Q(hight__lte=170) | Q(age__lt=20)) ser = UserSer(user_obj, many=True)
return Response(ser.data) # 聚合函数
# 使⽤aggregate()过滤器调⽤聚合函数。聚合函数包括:Avg 平均,Count 数量,Max 最⼤,
# Min 最⼩,Sum 求和
user = User.objects.aggregate(sum=Sum('age'))
print(user)
return Response('ok') user = User.objects.aggregate(avg=Avg('age'))
print(user)
return Response('ok') user = User.objects.aggregate(count=Count('age'))
print(user)
return Response('ok') user = User.objects.aggregate(min=Min('age'))
print(user)
return Response('ok') user = User.objects.aggregate(max=Max('age'))
print(user)
return Response('ok')

djangoDRF查询的更多相关文章

  1. django-drf框架中排序和查询组件

    0910自我总结 django-drf框架中排序和查询组件 一查询相关 1.模糊查询 1.导入模块组件 from rest_framework.filters import SearchFilter ...

  2. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  3. UWP 律师查询 MVVM

    APP简介 律师查询是基于聚合数据的律师查询接口做的,这个接口目前处于停用状态,但是,由于我是之前申请的,所以,还可以用,应该是无法再申请了. 效果图 开发 一.HttpHelper 既然是请求接口的 ...

  4. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  5. ASP.NET Aries 入门开发教程4:查询区的下拉配置

    背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...

  6. ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区

    前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...

  7. ExtJS 4.2 业务开发(二)数据展示和查询

    本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统 ...

  8. 深入理解MySql子查询IN的执行和优化

    IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...

  9. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  10. 【初学python】使用python连接mysql数据查询结果并显示

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

随机推荐

  1. pg_basebackup恢复:unrecognized configuration parameter "restore_command"

    问题描述:2022年最后一个工作日,时间过的真快,一晃又一年过去了,祝愿看到的各位元旦快乐. 使用pg_basebackup进行pg的备份恢复,在恢复的过程中,配置文件添加恢复的参数,一直启动报错. ...

  2. 你的 GitHub 年度报告「GitHub 热点速览 v.22.52」

    辞旧迎新的日子,又是年度报告满天飞的时候.GitHub 也不落其他平台之后,推出了用户 GitHub Contributions 报告.不知道,今年的你是不是比去年搬了更多的砖呢?在本期的 News ...

  3. [python] 基于chardet识别字符编码

    对于人类能够识别的字符,计算机会根据某一对应关系将其转换为二进制形式进行保存.这个对应关系就是字符编码表,即什么样的字符对应什么样的二进制编码.这种字符编码表往往是多种多样的,因此,如果我们想要将一个 ...

  4. ABP Framework 手动升级指南:从6.0.1升级到7.0.0

    ABP 7.0.0 正式版已经发布,ABP-Framework-All-In-One 项目同步升级. LeptonX Lite Theme 目前还没有包含在源码解决方案中,还是以 Nuget 包提供, ...

  5. 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 以下介绍PY32F0系列在 ...

  6. Java实现BP神经网络MNIST手写数字识别

    Java实现BP神经网络MNIST手写数字识别 如果需要源码,请在下方评论区留下邮箱,我看到就会发过去 一.神经网络的构建 (1):构建神经网络层次结构 由训练集数据可知,手写输入的数据维数为784维 ...

  7. 带你熟悉3种AQS的线程并发工具的用法

    摘要:AQS 的全称为(AbstractQueuedSynchronizer),AQS 是一个用来构建锁和同步器的框架,使用 AQS 能简单且高效地构造出应用广泛的大量的同步器. 本文分享自华为云社区 ...

  8. WinRAR的 安装与下载

    一.简介 WinRAR 是一个强大的压缩文件管理工具.它能备份你的数据,减少你的 E-mail 附件的大小,解压缩从 Internet 上下载的 RAR.ZIP 和其他格式的压缩文件,并能创建 RAR ...

  9. C#IIS上传文件大小设置问题:maxRequestLength、maxAllowedContentLength

    system.web节点下的 maxRequestLength属性来指定最大上传文件的size,默认值是4M <system.web> <httpRuntime maxRequest ...

  10. Python 元组列表排序:初学者可能忽视的细节

    P1085 [NOIP2004 普及组] 不高兴的津津 题目描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞 ...