新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Django之分組查詢與聚合查詢與Q查詢
程序代碼
import os
if __name__ == '__main__':
#加載Django項目的配置信息
os.environ.setdefault("DJANGO_SETTINGS_MODULE","testinclude.settings")
#導(dǎo)入Django,并啟動Django項目
import django
django.setup()
from ormtest import models
from django.db.models import Avg,Sum,Max,Min,Count,Q
#聚合查詢
#書價平均值
# ret = models.Book.objects.all().aggregate(Avg("price"))
# print(ret)
#統(tǒng)計多少本書
# ret = models.Book.objects.all().count()
# print(ret)
#統(tǒng)計價格最貴的書
# ret = models.Book.objects.all().aggregate(Max("price"))
# print(ret)
#統(tǒng)計價格最便宜的書
# ret = models.Book.objects.all().aggregate(Min("price"))
# print(ret)
#分組查詢
#查詢每一本書的作者數(shù)量
ret = models.Book.objects.all().annotate(author_num=Count("author"))
for book in ret:
print("書名:{},作者數(shù)量:{}".format(book.title,book.author_num))
#Q查詢
#查詢書籍價格大于100,小于200的書
ret = models.Book.objects.filter(price__gt=100,price__lt=200)
print(ret)
#查詢書籍價格大于150或者小于50的書
ret = models.Book.objects.filter(Q(price__gt=100)| Q(price__lt=35))
print(ret)
結(jié)果
書名:網(wǎng)絡(luò)基礎(chǔ)原理,作者數(shù)量:1
書名:python從入門到精通,作者數(shù)量:1
書名:Linux基礎(chǔ),作者數(shù)量:1
書名:計算機原理,作者數(shù)量:2
書名:新概念英語,作者數(shù)量:1
書名:Django從入門到精通,作者數(shù)量:1
書名:zabbix從入門到精通,作者數(shù)量:0
網(wǎng)頁題目:Django之分組查詢與聚合查詢與Q查詢
網(wǎng)址分享:http://www.dlmjj.cn/article/ijhsoe.html