分享

字段查询

 融水公子 2019-08-06

讲解对象:字段查询

作者:融水公子 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查询数据库这种频繁的读写操作是非常的消耗空间的

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多