f 使用查詢條件的值,專門取物件中某列值的操作,可以對同乙個表中的兩個列進行比較
from django.db.models import f
ret=models.book.objects.filter(count__lt=f('sale')).values() #查詢 列 count < sale的資料
f程式設計客棧or i in ret:
print(i)
models.book.objects.filter(sale__gt=f('stock')) #將乙個表中的sale和stock進行比較
models.book.objects.update(sale=f('sale')*2) #將列sale的資料*2,資料自動提交到資料庫 print(models.book.objects.all().values())
q 構建搜尋條件
from django.db.models import q
#找出滿足兩個條件的值
ret=models.book.objects.filter(id__gte=3,title='學泡妞').values()
print(ret)
#使用q 中的 | 是或的關係
ret=models.book.object程式設計客棧s.filter(q(id__lt=2)| q(id__gte=3)).values()
print(ret)
#使用 & 與的關係
ret=models.book.objects.filter(q(title='學泡妞') & q(id__gte=3)).values()
print(ret)
# ~q 是非的關係
ret=models.book.objects.filter(~q(q(title='學泡妞') & q(id__gte=3))).values()
print(ret)
聚合查詢---關鍵字aggregate
#統計所有書的平均**:聚合
from django.db.models import rtupjj**g,count,max,min
ret=book.objects.all().aggregate(c=**g("price"))
print(ret) #
分組查詢----關鍵字annotate
#查詢每個出版社出版的書籍個數
ret=publish.objects.all().annotate(c=count("book")).values("name","c")
print(ret) #www.cppcns.com'c': 2}]>
#查詢每乙個作者出版的書籍的平均**
ret=author.objects.all().annotate(price_**g=**g("book__price")).values("name","price_**g")
print(ret)#
#查詢每一本書籍名稱以及作者個數
ret=book.objects.all().annotate(c=count("author")).values("title","c")
print(ret) #j**a', 'c': 2}]>
#查詢**大於100的每一本書籍名稱以及作者個數
ret = book.objects.fwww.cppcns.comilter(price__gt=100).annotate(c=count("author")).values("title", "c")
print(ret)
區別:查詢所有書的平均**用聚合,查詢每本書的平均**用分組
本文標題: django框架f&q 聚合與分組操作示例
本文位址:
Django 許可權與分組
在使用authenticate進行驗證後,如果驗證通過了。那麼會返回乙個user物件,拿到user物件後,可以使用django.contrib.auth.login進行登入。示例 如下 user authenticate username username,password password if ...
pandas 高階處理 分組與聚合
分組與聚合通常是分析資料的一種方式,通常與一些統計函式一起使用,檢視資料的分組情況 想一想其實剛才的交叉表與透視表也有分組的功能,所以算是分組的一種形式,只不過他們主要是計算次數或者計算比例!看其中的效果 案例 不同顏色的不同筆的 資料 col pd.dataframe color object p...
python中資料聚合與分組運算
在資料分析處理中,對資料進行分組並對各組應用乙個函式 無論是聚合還是轉換 計算分組統計或生成透視表,是資料分析工作中的重要環節。python提供了乙個靈活高效的groupby功能,它可以使你能以一種自然的方式對資料集進行切片 切塊 摘要等操作。在python中主要有兩個模組 itertools和pa...