小结
查询格式
模型类.objects.filter(字段__查询词=值)
以下内容主要介绍查询词的操作
查看查询集的sql语句
查询集.query
exact, iexact
等于查询
一方查找多方,条件写法
情况一,多方表的外键没有定义关联名称
一方类名.objects.filter(多方类名小写__多方字段__查询词=值)
情况二,多方表的外键写义了关联名称 related_query_name 的值
一方类名.objects.filter(多方外键related_query_name的值__多方字段__查询词=值)
contains,icontains
包含查找
in
成员查找
gt, lt, gte, lte
比较查找
startswith, istartswith
起点查找
date, year 等等
日期查找
date 值要是datetime类型
year 等值要是int类型
isnull
判空
值为布尔类型
regex, iregex
正则表达式查找
详情
exact
精确查找,相当于等于
模型类.objects.filter(字段__exact=值)
- 说明

- 例子
数据表

精确查找

结果

- 扩展查询时大小写的敏感度

- linux大小写敏感utf8_bin,情况2
- windows都不敏感
查看sql语句
介绍如何查看sql语句
查询集 = 模型类.objects.filter(查询条件)
查询集.query
说明

例子
查询

结果

iexact
效果相当于exact,不过它是模糊查找
说明

例子

结果

- 补充,like 与 =
name = ‘张三’
与
name like ‘张三’
略有不同
exact 与 iexact 区别

contains 与 icontains
查询包含
带i 表示忽略大小写
- 说明


- 例子

结果

- contains与exact的区别

in
成员
- 说明

例子

例子,查找id为1 2 3 的文章,的分类
测试表

分析
即然找分类
就找分类表
此处是关联查找

注意
此处的查询条件
是
根据分类,反向查找文章(外键在文章)
视图中查找
多方行对象.一方类名小写_set.all()得到所有
在查询条件中查找
多方类名.objects.filter(一方类名__一方字段__查询词=值)
通过这种方式查
条件中的反向查询
多方找一方,两种查询方式
- 普通查找
多方类名.objects.filter(一方类名小写__一方字段__查询词=值)
模型类是这样的

反向查找是这样的

笔记

- 如果外键中定义时加入了 related_query_name时
多方类名.objects.filter(一方类名外键related_query_name的值__一方字段__查询词=值)


红框反查一方表
如果比对一方表id,那么__id可以不写

- 例子 查询 一堆图书中的所有分类有哪些

gt, lt, gte, lte
大于,小于,大于等于,小于等于
说明

例子

startswith, istartswith
以某某开始
- 例子


- 小结

date, year
时间相关类型
- 例子

提取 2018.4.4日发布的文章
查询语句

对应的sql

日期字段_date = 日期时间对象
- 例子,year, month day week_day



时间范围的过滤 range




isnull
判null
- 例子,找出所有日期 空空的数据
值为bool值

- 笔记

rege, irege
正则表达式查找
- 例子


- 笔记

跨表查询
