栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

关于Django模型model的全部大纲,听了一天的课做的笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Django模型model的全部大纲,听了一天的课做的笔记

# 模型查询*************************************************************************************** # 查询集 表示从数据库里获取的对象集合 # 查询集可以有多个过滤器 过滤器就是一个函数 基于我们的参数限制查询结果 # 从sql角度来说 查询集会被映射成select语句 就像where条件 # 1.在管理器上的方法调用查询集 # 2.查询集经过过滤器筛选后返回查询集 所以可以写成链式调用 # 3.惰性执行 创建查询集不会创建数据库的访问 直到调用数据的时候才会访问数据 # 4.直接访问数据的情况也有 # 4.1.迭代 # 4.2.序列化 # 4.3.与if合用 # 5.过滤器 返回查询集的方法称为过滤器 # 5.1. all() # 5.2. filter(键 值 键 值) filter(键 值).filter(键 值) # 5.3. exclude()过滤掉符合条件的数据 不常用 # 5.4. order_by()排序 不常用 # 5.5. values()一条数据就是一个字典 返回一个列表 和all()的区别在于返回的数据类似于json的列表 # 5.6. 返回的单个数据 # 5.6.1. get()返回一个满足条件的对象 # 如果没有找到符合条件的对象 会引发一个DoesNotExist异常 # 如果找到多个对象 会引发MultipleObjectReturned异常 # 异常用try except捕获屏蔽 # 5.6.2. count()返回查询集对象个数 # 5.6.3. first()返回查询集第一个对象 # 5.6.4. last()返回最后一个数据 # 5.6.5. exists()判断查询集中是否有数据 True False # 6. 限制查询集[n,m] 相当于limit start,count 的SQL语句 # 7. 查询集缓存 每个查询集都会包含一个缓存用来最小化数据库访问 # 第一次查询后Django会形成缓存 # 8. 字段查询 实现了sql中的where语句 作为方法filter(),exclude(),get()的参数 # 语法 属性名称__比较运算符 值 # 外键 属性名_id # 转义 like语句中的%是为了匹配占位 # 8.1. exact 判断 大小写敏感 通常用 就可以了 # 8.2. contains 是否包含 写法根据语法规则为 sname__contains sun # 8.3. startswith、endswith 以某某开头或结尾 # 以上4种参数如果在参数前多一个‘i’就大小写不敏感 iexact,icontains,istartwith,iendswith # 8.4. isnull,isnotnull是否为空 # 8.5. in 包含 写法 pk__in [2.4.6.8] # 8.6. gt大于 gte大于等于 lt小于 lte小于等于 # 8.7. 日期的几个 year,month,day,week_day,hour,minute,second,写法 lastTime__year 2017 # 8.8. 跨关联查询 处理join查询 # 语法 模型类名__属性名__比较运算符 # 8.9. 查询快键 pk 主键 # 9. 聚合函数 # 9.1. aggregate()函数返回聚合函数的值 Students.objects.aggregate(Max( sage )) # 与下面几个配合使用 # 9.2. Avg() # 9.3. Max() # 9.4. Min() # 9.5. Count() # 9.6. Sum() # 10. F对象 # 可以使用模型的A属性和B属性进行比较 from django.db.models import F,Q def grades(request): g Grades.objects.filter(ggirlnum__gt F( gboynum )) print(g) return HttpResponse( ahsgdfjhagsf ) # 并且支持F对象的算术处理 F( 字段 ) 20 # 11. Q对象 # 如果要使用or查询 需要使用Q对象 一般的过滤器方法中的关键字参数为And模式 stuList Students.objects.filter(Q(pk__lt 3) | Q(sage__gt 50)) # Q对象前的~为取反 写法~Q(sage__lt 20) # 如果只有一个对象 就是用于匹配的 跟没有Q是等效的 有用的话点个赞吧 是吧
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号