管理器是模型类的属性,用于将对象与数据表映射
如果已经自定义过管理器,Django就不再生成默认管理器
python manage.py shell
from booktest.models import BookInfo
BookInfo.objects.all()
BookInfo.books2.all()
查询集:查询出的结果。惰性执行。
过滤器:查询的方法:返回查询集的方法:
all():内部调用get_queryset()方法,不止all()调用该方法,大多数过滤器都调用该方法
filter(): filter(键1=值1,键2=值2)等价于filter(键1=值1).(键2=值2)
exclude():与filter查询结果相反
order_by():
values():
返回单个值的方法:
get():返回单个满足条件的对象,未找到或返回多条都会报异常
count():返回当前查询集的总条数
first():返回第一个对象
last(): 返回最后一个对象
exit():判断查询集中是否有数据,有返回Ture
限制查询集:[0,1]get() ,注:不支持副索引
字段查询:语法:"属性名__比较运算符=值"
使用 "属性__id"表示外键原始值
实现where子名,作为方法filter(),get(),exxlude()的参数
比较运算符:
区分大小写:exact,contains,startwith,endwith,isnull,isnotnull
不区分大小写:iexact,加上i就变成不区分大小写
例:
list1 = BookInfo.books1.filter(heroinfo__hcontent__contains=='八')
list2 = BookInfo.books1.filter(pk__lt=3)
聚合函数:使用aggregate()函数返回聚合函数的值
函数:Avg,Min,Max,Count,Sum
from django.db.models import Max,F,Q
Max1 = BookInfo.books1.aggregate(Max('bpub_date'))
F对象:
list3 = BookInfo.books1.filter(bread__gt=F('bcommet'))
Q对象:实现逻辑或的关系
list = BookInfo.books1.filter(Q(pk__lt=4)|Q(btitle__contains='1'))