Django中的QuerySet


一、QuerySet

  查詢集,類似一個列表,包含了滿足查詢條件的所有項。QuerySet 可以被構造,過濾,切片,做為參數傳遞,這些行為都不會對數據庫進行操作。只有你查詢的時候才真正的操作數據庫。意味着QuerySet是惰性執行的----即創建查詢集不會帶來任何的數據庫訪問,直到查詢集需要求值的時候,Django才會真正運行這個查詢。

stu_obj = models.Student.objects.filter(id=2)
for i in stu_obj:
       print(i.name)

只有在(print(i.name))時才訪問一次數據庫.。

常用的QuerySetf方法

<1> all():                 查詢所有結果
 
<2> filter(**kwargs):      它包含了與所給篩選條件相匹配的對象
 
<3> get(**kwargs):         返回與所給篩選條件相匹配的對象,返回結果有且只有一個,如果符合篩選條件的對象超過一個或者沒有都會拋出錯誤。
 
<4> exclude(**kwargs):     它包含了與所給篩選條件不匹配的對象
 
<5> values(*field):        返回一個ValueQuerySet——一個特殊的QuerySet,運行后得到的並不是一系列model的實例化對象,而是一個可迭代的字典序列
 
<6> values_list(*field):   它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列
 
<7> order_by(*field):      對查詢結果排序
 
<8> reverse():             對查詢結果反向排序,請注意reverse()通常只能在具有已定義順序的QuerySet上調用(在model類的Meta中指定ordering或調用order_by()方法)。
 
<9> distinct():            從返回結果中剔除重復紀錄(如果你查詢跨越多個表,可能在計算QuerySet時得到重復的結果。此時可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)
 
<10> count():              返回數據庫中匹配查詢(QuerySet)的對象數量。
 
<11> first():              返回第一條記錄
 
<12> last():               返回最后一條記錄
 
<13> exists():             如果QuerySet包含數據,就返回True,否則返回False
常用QuerySet方法

返回QuerySet方法

 

不返回QuerySet方法

 

聚合函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM