一.查询函数html
经过模型类.objects属性能够调用以下函数,实现对模型类对应的数据表的查询。 (这里objects是django为咱们实现的一个模型管理类的对象)python
(1)get数据库
返回知足条件的一条且只有一条数据。返回值是一个模型类的对象。django
参数中写查询条件。缓存
1)若是查到多条数据,则抛异常MultipleObjectsReturned。函数
2)查询不到数据,则抛异常:DoesNotExistthis
***************注意*********************spa
用get查询的时候,查询不到内容的时候会抛出异常,一样查询结果多余1条的时候也会抛出异常。所以,不能使用get,而应该使用filter。code
filer如果查询不到数据,会返回一个空的查询集,[] type类型是:Queryset。htm
查询到多余一条的时候会,仍是会返回一个包含多个对象的查询集。
全部用filter查询到的是否为'[ ]'来判断是否存在。
a:
1
2
3
4
5
|
userinfo
=
Users.objects.
filter
(email
=
request.POST[
'email'
])
if
userinfo.exists():
print
(
"yes,we have this email"
)
else
:
print
(
"sorry,email is not register"
)
|
b:能够使用count()这个方法,userinfo.count() =0的话表示不存在数据,大于0的话表示存在一条或多条。
c:if uerinfo:..........else: .......
***************注意*********************
(2)all
返回模型类对应的表中全部的数据。返回的是一个Queryset集合。
(3)filter
返回知足条件的数据,返回值是一个Queryset集合。
(4)exclude
返回不知足条件的数据,返回值是一个Queryset集合。
(5)order_by
对查询的结果进行排序,返回值是一个Queryset集合。
查询条件格式
条件格式:
1 |
|
a)判等
条件名:exact。
能够省略。
b)模糊查询
contains 包含
startwith 开头 endwith 结尾
c)空查询
isnull
d) 范围查询
in
e)比较查询
lt 小于 gt 大于 gte大于等于 lte小于等于
f)日期查询
year 年份
二.F对象
用于类属性之间的比较。使用以前须要先导入:
1 |
|
二.Q对象
用于查询时条件之间的逻辑关系。not and or,能够对Q对象进行~&|操做。 使用前应该先导入:
1 |
|
三.聚合函数
对查询结果进行聚合操做。 sum count avg max min
(1)aggregate
调用这个函数来使用聚合。返回值是一个字典。
先要导入聚合类:
1 |
|
(2)count函数 返回值是一个数字.
他们是对查询结果进行操做。
例如:
1 |
|
关联查询
经过多类的条件查询一类的数据:
1 |
|
经过一类的条件查询多类的数据:
1 |
|
queryset查询集
查询集特性:
1)惰性查询:只有在实际使用查询集中的数据的时候才会发生对数据库的真正查询。
2)缓存:当使用的是同一个查询集时,第一次使用的时候会发生实际数据库的查询,而后把结果缓存起来,以后再使用这个查询集时,使用的是缓存中的。
能够用角标或者切片的方式来限制查询值。