Django中的QuerySet类

本文介绍了Django中的QuerySet类,包括其作为可迭代对象的特性、切片操作、常用API如filter、exclude、annotate、order_by等。同时讲解了不返回QuerySet的方法,如get、create、get_or_create和update_or_create,以及count和in_bulk方法的使用。
摘要由CSDN通过智能技术生成
QuerSets类的简单介绍

    QuerySet是一个model 类对应的实例集合, 即数据库对应表的子集,可以称为查询集。

    QuerySet可以构造过滤切片,通常情况下都不会对数据库造成修改。只有查找的时候才会真正地操作数据库

    首先,QuerySet是可以迭代的对象,然后可以使用python的切片方法进行切片操作,返回的依旧是一个QuerySets的对象。

在一个QuerySet对象生成的时候,你可以使用lenlist等函数对对象进行操作,计算出包含对象的长度和转化对象成为列表进行操作

QuerSet 的API函数

    filter(**kwargs)

    使用传入的查找的参数(**kwarg)进行查找,返回一个新的QuerySet对象。如果与SQL做映射,相当AND连接了所有条件,参数的格式可以点击链接学习。


    exclude(**kwargs)

    与filter类似,但是exclude与SQL做映射,相当给filter映射的SQL外加了一个NOT。

    这个例子最后的结果不包括( 时间晚于2005年1月3日并且headline是"Hello" )   

    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3), headline='Hello')

    映射到SQL:
    
SELECT ...
WHERE NOT (pub_date > '2005-1-3' AND headline = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值