欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django 中的聚合函數(shù),分組函數(shù),F(xiàn) 查詢,Q查詢

 更新時(shí)間:2019年07月25日 10:16:39   作者:谷子的  
這篇文章主要介紹了django 中的聚合函數(shù),分組函數(shù),F(xiàn) 查詢,Q查詢,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

先以mysql的語句,聚合用在分組里,

對(duì)mysql中g(shù)roupby 是分組

每什么的時(shí)候就要分組,如 每個(gè)小組,就按小組分,

group by 字段 having 聚合函數(shù)

#舉例 :求班里的平均成績(jī), select Avg(score) from stu

在django中

聚合 是aggreate(*args,**kwargs),通過QuerySet 進(jìn)行計(jì)算。做求值運(yùn)算的時(shí)候使用

分組 是annotate(*args,**kwargs),括號(hào)里是條件,遇到 每什么的時(shí)候就要分組,

先從models 導(dǎo)入要用到的函數(shù)

from django.db.models import Min,Avg,Max,Sum

def aggregate(request):

  #求所有書籍的平均價(jià)格
  ret11 = Book.objects.all().aggregate(Avg("price"))
  # print(ret11)#{'price__avg': 51.975}

  #求所有書籍的最高價(jià)
  ret12 = Book.objects.all().aggregate(MaxPrice=Max('price'))
  # print(ret12)#{'MaxPrice': Decimal('100.00')}

  #egon 出版過書籍的最高價(jià)格
  p = Book.objects.filter(authors__name='egon').aggregate(Max('price'))

  print(p)#{'price__max': Decimal('100.00')}



  #分組 annotate()
  #每一個(gè)作者出版過的書的最高價(jià) ,
  #解析,按照作者的名字分組,就要用到values,顯示的是字段的名字,

  b1 = Book.objects.values('authors__name').annotate(Max('price'))

  print(b1)
  #<QuerySet [{'authors__name': 'egon', 'price__max': Decimal('100.00')},
      # {'authors__name': 'alex', 'price__max': Decimal('100.00')},
      # {'authors__name': 'yuan', 'price__max': Decimal('100.00')},
      # {'authors__name': 'oldboy', 'price__max': Decimal('100.00')}]># 四個(gè)作者都關(guān)聯(lián)了同一本書,而這本書又是最高價(jià)
#每個(gè)出版社出版的最低價(jià)格的書籍

b2 = Book.objects.values('publish__name').annotate(Min('price'))
print(b2)
#<QuerySet [{'publish__name': '北京出版社', 'price__min': Decimal('100.00')},
# {'publish__name': '河下出版社', 'price__min': Decimal('45.00')},
# {'publish__name': '清華出版社', 'price__min': Decimal('39.90')},
# {'publish__name': '人民出版社', 'price__min': Decimal('23.00')}]>

F Q 查詢

F,主要是做查詢

Q查詢 可以做組合條件的查詢 & 是 與 ,|(管道符) 或,~ 非

def FAndQ(request):
 
  #給每本書漲價(jià)10元,
  #用sql語句寫 update book set price=price+10
 
  #F,主要是做查詢
  # Book.objects.all().update(price=F('price')+10)
 
  #查詢書籍是富開頭,并且價(jià)格大于30的書籍 ,逗號(hào) 可以做 與 的關(guān)系查詢
  b4 = Book.objects.filter(title__startswith="富",price__gt=30)
  # print(b4)#<QuerySet [<Book: 富爸爸>]>
 
 
  #Q查詢 可以做組合條件的查詢 & 是 與 ,|(管道符) 或,~ 非
 
  ##查詢書籍是富開頭,或價(jià)格大于30的書籍
  b5 = Book.objects.filter(Q(title__startswith="富") | Q(price__gt=60))
  # print(b5)
  #<QuerySet [<Book: Linux>, <Book: 項(xiàng)塔蘭>, <Book: 追風(fēng)箏的人>, <Book: 富爸爸>]>
 
  #組合查詢,以富開頭,價(jià)格大于60 ,或者id大于5的書籍
  b6 = Book.objects.filter(Q(title__startswith="富")&Q(price__gt=60)|Q(id__gt=5))
  #print(b6)#<QuerySet [<Book: 富兒子>]>
  #
  #查詢條件如果不加Q,就要放到最后面,
  b7 = Book.objects.filter(Q(price__gt=60) | Q(id__gt=5),title__startswith="富")
  # print(b7)
 
  # ~ 取反的意思
  b8 = Book.objects.filter(Q(title__startswith="富") & ~Q(price__gt=60) | Q(id__gt=5))
  print(b8)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)在一個(gè)畫布上畫多個(gè)子圖

    python實(shí)現(xiàn)在一個(gè)畫布上畫多個(gè)子圖

    今天小編就為大家分享一篇python實(shí)現(xiàn)在一個(gè)畫布上畫多個(gè)子圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法

    tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法

    這篇文章主要為大家詳細(xì)介紹了tensorflow構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用Python做定時(shí)任務(wù)及時(shí)了解互聯(lián)網(wǎng)動(dòng)態(tài)

    使用Python做定時(shí)任務(wù)及時(shí)了解互聯(lián)網(wǎng)動(dòng)態(tài)

    這篇文章主要介紹了使用Python做定時(shí)任務(wù)及時(shí)了解互聯(lián)網(wǎng)動(dòng)態(tài),需要的朋友可以參考下
    2019-05-05
  • 淺談python 調(diào)用open()打開文件時(shí)路徑出錯(cuò)的原因

    淺談python 調(diào)用open()打開文件時(shí)路徑出錯(cuò)的原因

    這篇文章主要介紹了淺談python 調(diào)用open()打開文件時(shí)路徑出錯(cuò)的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Jupyter Notebook切換虛擬環(huán)境的三種方法

    Jupyter Notebook切換虛擬環(huán)境的三種方法

    本文主要介紹了Jupyter Notebook切換虛擬環(huán)境的三種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • pandas的resample重采樣的使用

    pandas的resample重采樣的使用

    這篇文章主要介紹了pandas的resample重采樣的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 簡(jiǎn)單談?wù)刾ython的反射機(jī)制

    簡(jiǎn)單談?wù)刾ython的反射機(jī)制

    本文主要介紹python中的反射,以及該機(jī)制的簡(jiǎn)單應(yīng)用,熟悉JAVA的程序員,一定經(jīng)常和Class.forName打交道。在很多框架中(Spring,eclipse plugin機(jī)制)都依賴于JAVA的反射能力,而在python中,也同樣有著強(qiáng)大的反射能力,本文將做簡(jiǎn)單的介紹
    2016-06-06
  • Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的6種方法

    Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的6種方法

    相信大家對(duì)進(jìn)度條一定不陌生了,很多安裝或者下載都會(huì)出現(xiàn)進(jìn)度條,本文主要介紹了Python實(shí)現(xiàn)實(shí)時(shí)顯示進(jìn)度條的6種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • Python中np.linalg.norm()用法實(shí)例總結(jié)

    Python中np.linalg.norm()用法實(shí)例總結(jié)

    在線性代數(shù)中一個(gè)向量通過矩陣轉(zhuǎn)換成另一個(gè)向量時(shí),原有向量的大小就是向量的范數(shù),這個(gè)變化過程的大小就是矩陣的范數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中np.linalg.norm()用法的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python框架flask表單實(shí)現(xiàn)詳解

    python框架flask表單實(shí)現(xiàn)詳解

    這篇文章主要介紹了python框架flask表單實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論