Django入门学习(8)——管理器和查询

本文介绍了Django中对象关系映射(ORM)的基本操作,包括如何使用管理器查询数据,掌握查询集的方法如filter、exclude及聚合函数等,并解释了不同过滤器的功能及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

管理器是模型类的属性,用于将对象与数据表映射

如果已经自定义过管理器,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'))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值