以下函数的使用,通过进入Python脚本(python manage.py shell)进行测试。
1.字段查询
(1)get()函数:返回表中满足条件的一条且只能有一条数据。
>>> from book.models import BookInfo
>>> book = BookInfo.objects.get(id=2)
>>> book.bname
(2)all()函数:返回模型类对应表格中的所有数据。
>>> from book.models import BookInfo
>>> books = BookInfo.objects.all()
>>> for book in books:
... print(book.bname) # 注:这里要缩进
...
注意,这里print前要记得缩进。
(3)filter()函数:返回满足条件的数据。
模型类属性名__条件名 = 值 # 注:双下划线
#条件名:
<1> exact # 精确定位
<2> contains # 包含**
<3> endswith # 以**结尾
<4> startswith # 以**开头
<5> gt gte # 大于 大于等于
<6> lt lte # 小于 小于等于
......
(4)exclude()函数:返回不满足条件的数据。
>>> from book.models import BookInfo
>>> books = BookInfo.objects.exclude(id=2)
>>> for book in books:
... print(book.bname)
...
(5)order_by()函数:对查询结果进行排序。
# 查询所有图书信息,并按照id 从小到大进行排序
BookInfo.objects.all().order_by('id')
# 查询所有图书信息,并按照id 从大到小进行排序
BookInfo.objects.all().order_by('-id')
2.F对象
F对象主要用于类属性间的比较,使用前需要进行导入;
>>> from django.db.models import F
>>> # F(类属性名)
>>> books = BookInfo.objects.filter(bpage__gt=F("id")*10)
3.Q对象
Q对象主要用于查询时条件之间的逻辑关系,使用前需导入;
>>> # 导入
>>> from django.db.models import Q
>>> # Q(属性名__条件名=值)
>>> books = BookInfo.objects.filter(Q(id__gt=2)&Q(bpage__gt=300))
4.聚合函数
聚合函数是对查询结果进行聚合操作,聚合后返回值是一个字典类型的数据
#聚合函数有sum()、count()、avg()、max()、min(),需要调用aggregate()函数来聚合
>>> # 导入
>>> from book.models import BookInfo
>>> from django.db.models import Count
>>> BookInfo.objects.aggregate(Count("id"))