亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中Django的ORM高級(jí)用法

 更新時(shí)間:2023年07月27日 10:10:14   作者:魏志標(biāo)  
這篇文章主要介紹了Python中Django的ORM高級(jí)用法,ORM是一種思想,ORM對(duì)象-關(guān)系映射,關(guān)系數(shù)據(jù)庫是企業(yè)級(jí)應(yīng)用環(huán)境中永久存放數(shù)據(jù)的主流數(shù)據(jù)存儲(chǔ)系統(tǒng),需要的朋友可以參考下

一、模糊查詢

contains

查詢某個(gè)屬性中包含某個(gè)數(shù)據(jù)結(jié)果

def stuinfo(request):
    ##查詢字段中包含某個(gè)內(nèi)容
    data_list = stu.objects.filter(name__contains="華")
    for item in data_list:
        print(item.name)
    return HttpResponse("查詢成功") 

在這里插入圖片描述

startswith、endswith

def stuinfo(request):
    ###查詢以什么開頭的內(nèi)容
    stu_start = stu.objects.filter(name__startswith="張")
    for item in stu_start:
        print(item.name)
    return HttpResponse("查詢成功")    

在這里插入圖片描述

def stuinfo(request):
    ###查詢以什么結(jié)尾的結(jié)尾
    stu_end = stu.objects.filter(name__endswith="華")
    for item in stu_end:
        print(item.name)
    return HttpResponse("查詢成功"  

在這里插入圖片描述

注釋:以上運(yùn)算符都區(qū)分大小寫,在這些運(yùn)算符前加上i表示不區(qū)分大小寫,如iexact、icontains、istartswith、iendswith.

isnull

查看某個(gè)字段為空的記錄

def stuinfo(request):
    ###比較大小
    null_stu = stu.objects.filter(description__isnull=True)  ##查詢description為空的數(shù)據(jù)結(jié)果
    for item in null_stu:
        print(item.age)
    return HttpResponse("查詢成功")

比較查詢

gt 大于 (greater then)
gte 大于等于 (greater then equal)
lt 小于 (less then)
lte 小于等于 (less then equal)
def stuinfo(request):
    ###比較大小
    age_stu = stu.objects.filter(age__gt=22)    ###查詢年齡大于22的結(jié)果
    for item in age_stu:
        print(item.age)
    return HttpResponse("查詢成功") 

日期查詢

year、month、day、week_day、hour、minute、second:對(duì)日期時(shí)間類型的屬性進(jìn)行運(yùn)算。

from django.utils import timezone as datetime
def stuinfo(request):
    ###根據(jù)日期進(jìn)行查詢
    time_stu = stu.objects.filter(create_time__gt=datetime.datetime(2020,11,20))  ##查看創(chuàng)建時(shí)間在2020年11月20日之后的數(shù)據(jù)
    print(time_stu)
    return HttpResponse("查詢成功")

二、進(jìn)階查詢

F查詢

之前的查詢都是對(duì)象的屬性與常量值比較,兩個(gè)屬性怎么比較呢? 答:使用F對(duì)象,被定義在django.db.models中。

from django.db.models import F
def stuinfo(request):
    ###F查詢,不同屬性之間進(jìn)行比較
    stu.objects.filter(id=1).update(update_time="2022-5-22")   ###更新某個(gè)字段的數(shù)據(jù)
    f_stu = stu.objects.get(id=1)
    print(f_stu.name)
    stu_list = stu.objects.exclude(create_time=F("update_time"))  ##查看創(chuàng)建時(shí)間和更新時(shí)間不一樣的數(shù)據(jù)
    print(stu_list)  
    return HttpResponse("查詢成功")

在這里插入圖片描述

Q查詢

多個(gè)過濾器逐個(gè)調(diào)用表示邏輯與關(guān)系,同sql語句中where部分的and關(guān)鍵字。

如果需要實(shí)現(xiàn)邏輯或or的查詢,需要使用Q()對(duì)象結(jié)合|運(yùn)算符,Q對(duì)象被義在django.db.models中。

from django.db.models import Q
def stuinfo(request):
    ###Q查詢,不同屬性之間進(jìn)行比較,類似sql中邏輯或,與的關(guān)系
    ##查看年齡小于19或者大于22
    q_stu = stu.objects.filter(Q(age__lt=19) | Q(age__gt=22)).all()
    for item in q_stu:
        print(item.age)
    return HttpResponse("查詢成功")  

在這里插入圖片描述

Q對(duì)象可以使用&、|連接,&表示邏輯與,|表示邏輯或**

from django.db.models import Q
def stuinfo(request):
    ##查看年齡不等于22的
    q_stu = stu.objects.filter(~Q(age=22))
    for item in q_stu:
        print(item.age)
    return HttpResponse("查詢成功") 

在這里插入圖片描述

聚合查詢

使用aggregate()過濾器調(diào)用聚合函數(shù)。聚合函數(shù)包括:Avg 平均,Count 數(shù)量,Max 最大,Min 最小,Sum 求和,被定義在django.db.models中。

注意:aggregate的返回值是一個(gè)字典類型,格式如下:

 {'屬性名__聚合類小寫':值}
from django.db.models import Sum,Count,Avg,Max,Min
def stuinfo(request):
   ###聚合查詢聚合函數(shù)包括:Avg 平均,Count 數(shù)量,Max 最大,Min 最小,Sum 求和
   ##查看數(shù)量
   stu_count = stu.objects.count()     ##使用count時(shí)一般不使用aggregate()過濾器。
   print(stu_count)
   #查詢平均年齡
   avg_stu = stu.objects.aggregate(Avg('age'))
   print(avg_stu)
   ##最大值
   max_stu = stu.objects.aggregate(Max('age'))
   print(max_stu)
   return HttpResponse("查詢成功")

在這里插入圖片描述

到此這篇關(guān)于Python中Django的ORM高級(jí)用法的文章就介紹到這了,更多相關(guān)Django的ORM高級(jí)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決python3安裝pandas出錯(cuò)的問題

    解決python3安裝pandas出錯(cuò)的問題

    這篇文章主要介紹了解決python3安裝pandas出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)示例代碼

    Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)示例代碼

    在Python中,分支結(jié)構(gòu)通過if、elif和else關(guān)鍵字來實(shí)現(xiàn)條件判斷,在使用if語句時(shí),程序會(huì)根據(jù)條件表達(dá)式的真假執(zhí)行相應(yīng)的代碼塊,這篇文章主要介紹了Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下
    2024-03-03
  • Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖

    Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖

    這篇文章主要介紹了Python如何根據(jù)時(shí)間序列數(shù)據(jù)作圖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python流程圖和思維導(dǎo)圖實(shí)例代碼

    python流程圖和思維導(dǎo)圖實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于python流程圖和思維導(dǎo)圖的相關(guān)資料,學(xué)習(xí)python過程中,畫流程圖可以有效的幫助你梳理程序的邏輯,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • python中使用 xlwt 操作excel的常見方法與問題

    python中使用 xlwt 操作excel的常見方法與問題

    這篇文章主要給大家介紹了關(guān)于python中使用 xlwt 操作excel的常見方法與問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 詳解?PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中

    詳解?PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中

    這篇文章主要為大家介紹了如何將PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中的詳細(xì)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • pytorch索引查找 index_select的例子

    pytorch索引查找 index_select的例子

    今天小編就為大家分享一篇pytorch索引查找 index_select的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用Python實(shí)現(xiàn)將Excel表格插入到Word文檔中

    使用Python實(shí)現(xiàn)將Excel表格插入到Word文檔中

    在日常辦公場景中,通過Python腳本自動(dòng)化整合Excel數(shù)據(jù)與Word文檔,能夠?qū)崿F(xiàn)表格的智能遷移,滿足不同場景下數(shù)據(jù)呈現(xiàn)的專業(yè)性要求,下面小編就來為大家介紹一下具體實(shí)現(xiàn)的三種方法吧
    2025-03-03
  • pyecharts如何使用formatter回調(diào)函數(shù)的問題

    pyecharts如何使用formatter回調(diào)函數(shù)的問題

    這篇文章主要介紹了pyecharts如何使用formatter回調(diào)函數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 推薦8款常用的Python GUI圖形界面開發(fā)框架

    推薦8款常用的Python GUI圖形界面開發(fā)框架

    這篇文章主要介紹了推薦8款常用的Python GUI圖形界面開發(fā)框架,需要的朋友可以參考下
    2020-02-02

最新評(píng)論