讲解对象:字段查询
作者:融水公子 rsgz
对象:字段查询
理解:
0.1字段查询实现了SQL中的where语句
0.2字段查询作为filter()
exclude() get()的参数
语法:
0.1属性名__比较运算符=一个值(双下划线)
0.2查询外键属性名_id
转义:
0.1
like语句中使用%是为了匹配占位,匹配数据中的%(where like "\%")
0.2
filter(sname__contains=’%’)
实例:studentsList = Students.stuObj2.filter(sname__contains ="融水%")
运算符:
对象:exact
作用:判断,大小写敏感
用法:filter(isDelete=False)
对象:contains
作用:包含,大小写敏感
实例:studentsList = Students.stuObj2.filter(sname__contains= "融水")
对象:startswith,endswith
作用:以value开头或者结尾的,大小写敏感
实例:studentsList = Students.stuObj2.filter(startswith="孙")
注意:以上四个加上i就表示不区分大小写
iexact,icontains,istartswith,iendswith
对象:isnull isnotnull
作用:是否为空
实例:studentsList = Students.stuObj2.filter(sname__isnull= "融水")
对象:in
作用:是否在范围内
实例:studentsList = Students.stuObj2.filter(pk__in=[2,4,6,8,10])
对象:大于小于
大于 gt
大于等于 gte
小于 lt
小于等于 lte
实例:想找年龄大于20的数据
studentsList
= Students.stuObj2.filter(sage__gt=20)
对象:日期
year
month
week_day
hour
minute
second
实例:studentsList = Students.stuObj2.filter(lastTime__year=2019)
对象:跨关联查询
实例:grade = Grades.objects.filter(students__scontend__contains ='齐天大圣')
理解:描述带有融水公子的学生的班级是什么
查询快捷
pk:代表的是主键
这个就是主键

理解:
0.1如果其他的字段是主键那么pk就代表其他的字段
0.2
pk就带包了主键
0.3主键可以包含其他字段
0.4我们一般是不会自动的设置主键
补充:
对象:查询集的缓存
0.1每个查询集都包含一个缓存,来最小化的对数据进行访问
0.2在新建的查询集中缓存首次为空
0.3第一次对查询集求值,django会发生数据缓存
0.4以后的查询直接使用查询集的缓存
0.5查询数据库这种频繁的读写操作是非常的消耗空间的