溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Django 之 分組查詢與聚合查詢與Q查詢

發(fā)布時(shí)間:2020-06-11 11:06:25 來(lái)源:網(wǎng)絡(luò) 閱讀:462 作者:wx592bc92b285c7 欄目:編程語(yǔ)言

程序代碼

import os

if __name__ == '__main__':
    #加載Django項(xiàng)目的配置信息
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","testinclude.settings")
    #導(dǎo)入Django,并啟動(dòng)Django項(xiàng)目
    import django
    django.setup()

    from ormtest import models
    from django.db.models import Avg,Sum,Max,Min,Count,Q

    #聚合查詢
    #書價(jià)平均值
    # ret = models.Book.objects.all().aggregate(Avg("price"))
    # print(ret)

    #統(tǒng)計(jì)多少本書
    # ret = models.Book.objects.all().count()
    # print(ret)

    #統(tǒng)計(jì)價(jià)格最貴的書
    # ret = models.Book.objects.all().aggregate(Max("price"))
    # print(ret)

    #統(tǒng)計(jì)價(jià)格最便宜的書
    # 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查詢
    #查詢書籍價(jià)格大于100,小于200的書
    ret = models.Book.objects.filter(price__gt=100,price__lt=200)
    print(ret)

    #查詢書籍價(jià)格大于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
書名:計(jì)算機(jī)原理,作者數(shù)量:2
書名:新概念英語(yǔ),作者數(shù)量:1
書名:Django從入門到精通,作者數(shù)量:1
書名:zabbix從入門到精通,作者數(shù)量:0
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI