其他分享
首页 > 其他分享> > Django 查询

Django 查询

作者:互联网

模型查询

概述

1:查询集表示从数据库中获取对象的集合
2:查询集可以有多个过滤器
3:过滤器就是一个函数,基于所给的参数限制查询集结果
4:从sql来说,查询集与select等价

关于查询集

1:在管理器上调用过滤方法返回查询集
2:查询集经过筛选器后返回新的查询集,所以可以写成链式调用
3: 惰性执行

创建查询集不会带来任何数据的访问,知道调用数据时(用),才会访问数据库

4:直接访问数据的情况
迭代
序列化
与if合用
5:返回查询集的方法叫过滤器
all()->不过滤
filter()->返回符合条件的数据
filter(键=值,键=值)
filter(键=值).filter(键=值)
两个条件是且的关系
exclude()->过滤掉符合条件的数据
order_by()->排序
values()->一条数据就是一个对象(字典样式)返回一个列表
6:返回单个结果
get() 返回一个满足条件的对象,如果没有找到或找到多条都会引发异常。
count()返回当前查询集中的对象个数
first()返回查询集中的第一个对象
last()返回查询集中的最后一个对象
exists()判断查询集中是否有数据,要是有,返回true
7:限制查询集
查询集返回列表,可以用下标进行限制,等同于sql的limit语句
注意:下标不能为负数
例:stu=grades.stuobj.all()[0:5]
8:查询集的缓存
概述:每个查询集都包含有一个缓存,来最小化数据库访问
9:字段查询
概述:实现了sql中的where语句,作为filter(),exclude(),get()的参数
语法:属性名称__比较运算符=值
外键:属性名_id
比较运算符:
exact:判断,区分大小写
contains:是否包含,区分大小写 例:stulist=grade.Objects.filter(gname_contains='李')这就查询了名字中包含李的结果
startswith,endswith:stulist=grade.Objects.filter(gname_startswith='李')
以上前面加上i,就不区分大小写了
null,isnotnull。同上同理
in 是否在范围内 例:stulist=grade.Objects.filter(pk__in[2,4,6,8,10])结果集为序号为2,4,6,8,10的
gt,gte,lt,lte对应:大于,大于等于,小于,小于等于。例:stulist=grade.Objects.filter(age__gt=20)年龄大于20的
year,month,day,hour,week_day等

标签:返回,stulist,grade,查询,filter,Objects,Django
来源: https://www.cnblogs.com/rmxob/p/12532711.html