django 聚合函式
阿新 • • 發佈:2020-12-29
聚合函式存放位置:
django中所有的聚合函式,都是放在 django.db.models 中的。
聚合函式執行規則:
聚合函式不能夠單獨執行,需要放在一些可以執行聚合函式的方法下面中執行。比如:"aggregate"
# 在Articles模型中,有一個價格欄位price,現在需要求所有文章price的平均數 from django.shortcuts import render from django.db.models import Avg from apps.test_three.models import Articles def index(res): # Avg() 這個求平均數的聚合函式需要放在aggregate方法中執行才可以 article = Articles.objects.aggregate(Avg('price')) print(article) # {'price__avg': 30.0} return render(res, 'test_html.html')
聚合函式執行結果:
聚合函式直接結果,會直接返回一個dict字典,且鍵名稱形成的預設規則為:field_ _聚合函式的名稱的小寫形式,比如上邊我們求的是price的平均值,返回的字典key的名稱是:欄位名 price_ _avg 後邊avg是聚合函式小寫形式。
如果你向自定義 字典中key的名稱,那麼需要寫成關鍵字的形式:
# ··· ··· def index(res): # Avg() 這個求平均數的聚合函式需要放在aggregate方法中執行才可以 article = Articles.objects.aggregate(price_avg=Avg('price')) print(article) # {'price_avg': 30.0} return render(res, 'test_html.html')
aggregate方法
這個方法執行結果不會返回一個QuerySet物件,而是返回一個字典。
未完成,待續!