1. 程式人生 > 其它 >django 聚合函式

django 聚合函式

技術標籤:DjangoPythonpythondjango

聚合函式存放位置:

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物件,而是返回一個字典。

未完成,待續!