版权声明:未经允许,严禁转载。
1.查询函数
通过 模型类.objetcts属性可以调用如下函数,实现对模型类对应的数据表的查询。
函数名 | 功能 | 返回值 | 说明 |
---|---|---|---|
get | 返回表中满足条件的一条且仅有一条数据 | 返回值是一个模型类对象 | 参数中写查询条件,1)如果查询到多条数据则抛出MultiObjectsReturned。2)查询不到数据,则抛出DoesNotExit |
all | 返回模型类中的所有数据 | 返回值是Queryset类型 | 查询集 |
filter | 返回满足条件的数据 | 返回值是Queryset类型 | 参数写查询条件 |
exclude | 返回不满足条件的数据 | 返回值是Queryset类型 | 参数写查询条件 |
order by | 对查询结果进行排序 | 返回值是Queryset类型 | 参数写根据哪些字段进行排序 |
2.查询条件
a)判等__exact
BookInfo.objects.get(id__exact=1) 可省略__exact不写
b)模糊查询 __contains
例:查询书名中包含‘传’的图书。 BookInfo.objects.filter(btitle__contains=‘传’)
同理的开头结尾用__startwith,__endwith
c)空查询 __isnull(值位True,False)
例:查询书名不为空的图书。BookInfo.objects.filter(id__isnull=False)
d)范围查询__in
例:查询id为1或者3或5的图书。BookInfo.objects.filter(id__in[1,3,5])
e)比较查询 gt(greater than) lt(less than) gte(equal)大于等于 lte小于等于
例:查询编号大于3的图书 BookInfo.objects.filter(id__gt=3)
f)日期查询
3.Q对象
作用:用于查询条件之间的逻辑关系。not , and , or。可以对Q对象进行 ~ & | 的操作。
4.F对象
作用:用于类属性间的比较
使用之前需要导入:from django.db.models import F
例:查询图书阅读量大于评论量的图书信息。
BookInfo.objects.filter(bread__gt=F(‘comment’))