Django查找數據庫objects.filter() 排序order_by Q()與或非 F()屬性之間比較 聚合函數的用法


條件選取QuerySet的時候,filter表示=參數可以寫查詢條件,exclude表示!=,querySet.distinct() 去重復(除了get返回值都是QuerySet,可以繼續調用所有函數)

objects.filter()

__exact 精確等於 like ‘aaa’ __iexact 精確等於 忽略大小寫 ilike ‘aaa’

__contains 包含 like ‘%aaa%’ __icontains 包含 忽略大小寫 ilike ‘%aaa%’,但是對於sqlite來說,contains的作用效果等同於icontains。

__gt 大於

__gte 大於等於

__lt 小於

__lte 小於等於

__in 存在於一個list范圍內

__startswith 以…開頭

__istartswith 以…開頭 忽略大小寫

__endswith 以…結尾

__iendswith 以…結尾,忽略大小寫

__range 在…范圍內

__year 日期字段的年份

__month 日期字段的月份

__day 日期字段的日

__isnull=True/False 空查詢

 

order_by

升序

XXXX.objects.all().order_by('id')

XXXX.objects.all().filter(client=client_id).order_by('check_in')

降序

XXXX.objects.all().order_by('-id')

XXXX.objects.all().filter(client=client_id).order_by('-check_in')

 

Q()    |或    &與(逗號效果一樣)    ~非(不等於)

導入from django.db.models imports Q

XXXX.objects.filter(Q(id__gt=3)|Q(bread__gt=2))

 

F()

導入from django.db.models imports F

查詢aaa大於bbb的信息

XXXXX.objects.filter(aaa__gt=F('bbb'))

查詢aaa大於bbb兩倍的信息

XXXXX.objects.filter(aaa__gt=F('bbb')*2)

 

 

聚合函數

導入from django.db.models import Sum,Count,Max,Min,Avg

 

查詢所有XXXXX的數目。

XXXXX.objects.all().aggregate(Count('id'))

 

查詢所有XXXXX字段的總和

XXXXX.objects.all().aggregate(Sum('字段'))

 


count函數:返回值是一個數字

統計所有XXXXX的數目

XXXXX.objects.count()


統計id大於3的所有XXXXX的數目

XXXXX.objects.filter(id__gt=3).count()


免責聲明!

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



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