Django 学习第七天——Django模型基础第二节
User 是自己创建的模型类,等于数据库中的表
常用的查询方法:
all():获取所有数据: User.objects.all()
first():获取第一条数据: User.objects.first()
last():获取最后一条数据: User.objects.last()
filter():根据参数提供的条件获取过滤后的记录:User.object.filter(id=1)
User.objects.filter(id=1,age=18) # 多个条件相当于sql语句的and连接
exclude():排除条件的所有数据: User.objects.exclude(name=‘lalala')
get():获取一条数据: User.objects.get(id=1)
注:只能获取一条,多余一条报错
order_by():对结果排序(顺序): User.objects.order_by('age')
多项排序: User.objects.order_by('age','id')
逆向排序: User.objects.order_by('-age') # 逆向排序就是条件前面加上个负号
values():返回 QuerySet ,字典列表:User.objects.all().values()
查询表中所有的name 以字典列表返回:User.objects.values('name')
only():返回QuerySet,对象列表,一定包含主键字段:User.objects.only('name')

defer():返回QuerySet,对象列表,作用和 only() 相反,查询出除了给定条件的所有字段数据:User.objects.defer('sex')

count():获取当前查询到的数据的总数:User.objects.all().count()
常用的查询条件:
切片和python列表切片用法相似,不支持负索引,数据量大时不用步长
切片后,不在支持附加过滤条件与排序
User.objects.all()[2:5] # 获取2~5条数据
exact:相当于等于号
User.objects.filter(name__exact='lalala') # 查出 name = ’lalala‘ 的数据
iexact:跟exact一样,只是忽略大小写的匹配
contains:包含
User.objects.filter(name__contains='lala') # 包含 lala 的都匹配出来
icontains:跟contains一样,唯一不同的是忽略大小写
startswith:以什么开始
User.objects.filter(name__startswith='la') # 查询 name 字段以 la 开始的数据
istartswith:同startswith ,只是忽略大小写
endswith:以什么结尾,同startswith
iendswith:以什么结尾,忽略大小写,同istartswith
in:成员所属:
User.objects.filter(age__in=[18,19,20]) # 查询出age=18,19,20的所有数据
gt:大于:
User.objects.filter(age__gt=20) # 查询出age 大于 20的所有数据
gte:大于等于
User.objects.filter(age__gte=20) # 查询出age 大于等于 20的所有数据
lt:小于
User.objects.filter(age__lt=20) # 查询出age 小于 20的所有数据
lte:小于等于
User.objects.filter(age__lte=20) # 查询出age 小于等于 20的所有数据
range:区间
User.objects.filter(age__range=(18,30)) # 查询出 age 在18 到 30 的所有数据
isnull:判断是否为空
User.objects.filter(name__isnull=True)
使用 sql 中的 or 条件查询时:
1、先导包
from django.db.models import Q
2、使用:
User.objects.filter(Q(age=0) | Q(age=1)) # 查询出 age=0 或 age=1的所有数据
查找对象的条件的意思是传给以上方法的一些参数;相当于是SQL语句中的where语句后面的条件,语法为字段名__(两个下划线)规则
聚合函数:
导包:
from django.db.models import Count,Avg,Max,Min,Sum
Count:统计
Avg:平均值
Max:最大值
Min:最小值
Sum:求和
通过 queryset 的 aggregate 方法使用:

返回字典格式;age_avg是自定义的键
分组:
结合 Values,annotate 和聚合函数一起使用
annotate

Django 学习第七天——Django模型基础第二节的更多相关文章
- 七、Django模型基础第二节——常用查询
1 常用的模型字段类型 官方文档链接: https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 常用的字段类型 模型字 ...
- Django学习笔记(2)——模型,后台管理和视图的学习
一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...
- Django 学习笔记(四) --- 模型和数据库
人生苦短 ~ Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用).因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的 ...
- django学习笔记(三)模型
1.创建一个django app: python manage.py startapp books 2.validate 命令检查你的模型的语法和逻辑是否正确.一旦你觉得你的模型可能有问题,运行 py ...
- Django学习系列之重写User模型和登录验证
重写User模型 Django内置的User模型可能不适合某些项目,我们可能要基于内置的添加一些字段 创建users app startapp users 修改settings.py配置文件,覆盖默认 ...
- django 学习笔记(一)搭建基础环境
1.安装django 下载地址 https://github.com/django/django 解压后进入文件夹运行指令 >> python setup.py install 2.创建工 ...
- Django学习笔记之使用 Django项目开发框架
Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来.Django 框架的核心组件有: 用于创建模型的对象关系映射 为最终用户设计的完美管理界面 ...
- [python][django学习篇][3]创建django web的数据库模型
推荐学习博客:http://pythonzh.cn/post/8/ 博客或者web界面向用户展示内容,它需要从某个地方获取博客内容或者web界面内容,才能够展示出来.通常来说:某个地方指的就是数据库 ...
- Django学习系列8:django测试客户端
"""向浏览器返回真正的HTML响应,添加一个新的测试方法""" from django.test import TestCase from ...
随机推荐
- Confluence 6 数据库表-空间(Spaces)
这个表格与空间的管理有关. spaces 有关空间使用的信息:key,空间的名称和数字 ID. https://www.cwiki.us/display/CONF6ZH/Confluence+Data ...
- Confluence 6 用户目录图例 - 连接 Jira 和 Jira 连接 LDAP
上面的图: Confluence 连接到 JIRA 用户管理,JIRA 使用 LDAP 用户目录. https://www.cwiki.us/display/CONFLUENCEWIKI/Diagra ...
- Python中pass的用法、作用
pass主要作用就是占位,让代码整体完整.如果定义一个函数里面为空或一个判断写好了之后还没想好满足条件需要执行执行什么逻辑,又想留着后面使用,但是函数和判断里面为空,那么就会报错,当你还没想清楚函数内 ...
- Python_网络编程udp-飞秋自动攻击
# 模拟一个接收数据import socketimport time def auto_hack(udp_socket, recv_msg, revc_ip, revc_port=2425): # 发 ...
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件. 在Spring Cloud中,有分布式配置中心组件spring cloud confi ...
- 报错ERR_CONNECTION_REFUSED,如何解决(原创)
当我访问我的一个后天地址的时候,突然出现了ERR_CONNECTION_REFUSED,但是之前是可以访问的. 我先ping了下这个网址,发现是OK的 然后我想可能是80端口有问题,也就是说可能是WE ...
- SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问
SpringBoot学习(3)-SpringBoot添加支持CORS跨域访问 https://blog.csdn.net/yft_android/article/details/80307672
- 学习笔记: 反射应用、原理,完成扩展,emit动态代码
using Ruanmou.DB.Interface; using Ruanmou.DB.MySql; using Ruanmou.DB.SqlServer; using Ruanmou.Model; ...
- RPC服务超时排查思路
RPC服务超时排查思路- 1.查看服务提供者日志相关信息进行排查- 2.查看消费者的超时时间设置是否合理- 3.查看服务提供者业务逻辑是否有DB操作,有的话看是否有慢SQL- 4.查看服务提供者业务逻 ...
- 彻底明确怎样设置minSdkVersion和targetSdkVersion
minSdkVersion和targetSdkVersion相信非常多人都不太理解.我在网上也看了很多关于这两者差别的文章,感觉说的都非常模糊.直到我在stackOverFlow看到Android M ...