最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Django的ORM高級用法

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

一、模糊查詢

contains

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

def stuinfo(request):
    ##查詢字段中包含某個內(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("查詢成功"  

在這里插入圖片描述

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

isnull

查看某個字段為空的記錄

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:對日期時間類型的屬性進行運算。

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

二、進階查詢

F查詢

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

from django.db.models import F
def stuinfo(request):
    ###F查詢,不同屬性之間進行比較
    stu.objects.filter(id=1).update(update_time="2022-5-22")   ###更新某個字段的數(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ù)據(jù)
    print(stu_list)  
    return HttpResponse("查詢成功")

在這里插入圖片描述

Q查詢

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

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

from django.db.models import Q
def stuinfo(request):
    ###Q查詢,不同屬性之間進行比較,類似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對象可以使用&、|連接,&表示邏輯與,|表示邏輯或**

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的返回值是一個字典類型,格式如下:

 {'屬性名__聚合類小寫':值}
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時一般不使用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高級用法的文章就介紹到這了,更多相關(guān)Django的ORM高級用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法

    Python實現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法

    這篇文章主要介紹了Python實現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法,涉及Python時間函數(shù)及正則匹配的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • 哪些是python中web開發(fā)框架

    哪些是python中web開發(fā)框架

    在本篇文章里小編給大家整理的是關(guān)于python的web開發(fā)框架的總結(jié)內(nèi)容,有興趣的朋友們學習下吧。
    2020-06-06
  • 如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問題

    如何解決Python讀取圖片路徑存在轉(zhuǎn)義字符的問題

    這篇文章主要為大家詳細介紹了如何解決Python讀取圖片路徑時存在轉(zhuǎn)義字符的問題,文中的示例代碼講解詳細,感興趣的小伙伴可以學習一下
    2023-07-07
  • Python圖像處理之輕松實現(xiàn)在圖片上添加文字

    Python圖像處理之輕松實現(xiàn)在圖片上添加文字

    在當今的數(shù)字化時代,我們經(jīng)常需要處理圖像,無論是為攝影作品添加專屬水印、批量生成會議證書、還是制作有趣的社交媒體表情包,在圖片上添加文字都是一項極其常用且實用的技能,下面我們就來看看如何使用Python實現(xiàn)這一功能吧
    2026-04-04
  • Python數(shù)據(jù)庫編程之pymysql詳解

    Python數(shù)據(jù)庫編程之pymysql詳解

    本文主要介紹了Python數(shù)據(jù)庫編程中pymysql,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • 詳解PyQt5中textBrowser顯示print語句輸出的簡單方法

    詳解PyQt5中textBrowser顯示print語句輸出的簡單方法

    這篇文章主要介紹了詳解PyQt5中textBrowser顯示print語句輸出的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • PyQt5根據(jù)控件Id獲取控件對象的方法

    PyQt5根據(jù)控件Id獲取控件對象的方法

    今天小編就為大家分享一篇PyQt5根據(jù)控件Id獲取控件對象的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • pycharm終端安裝pytorch失敗的問題及解決

    pycharm終端安裝pytorch失敗的問題及解決

    這篇文章主要介紹了pycharm終端安裝pytorch失敗的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • python+os根據(jù)文件名自動生成文本

    python+os根據(jù)文件名自動生成文本

    這篇文章主要為大家詳細介紹了python+os根據(jù)文件名自動生成文本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python結(jié)合AI實現(xiàn)數(shù)據(jù)可視化全流程

    Python結(jié)合AI實現(xiàn)數(shù)據(jù)可視化全流程

    這篇文章主要介紹了Python結(jié)合AI實現(xiàn)數(shù)據(jù)可視化全流程,Python有pandas、Matplotlib等庫提供強大的數(shù)據(jù)處理和基礎(chǔ)可視化能力,而AI技術(shù)則賦予其智能分析特性,需要的朋友可以參考下
    2026-02-02

最新評論

台中市| 满洲里市| 麻城市| 惠东县| 凤山县| 封丘县| 绍兴县| 乌兰察布市| 西宁市| 罗田县| 石河子市| 石林| 孝感市| 赣榆县| 麻城市| 瑞丽市| 长白| 巴中市| 馆陶县| 梅州市| 廊坊市| 德化县| 南漳县| 若尔盖县| 瓦房店市| 南陵县| 望奎县| 嫩江县| 林口县| 顺平县| 屯门区| 云龙县| 南澳县| 孙吴县| 甘孜县| 三门县| 佛坪县| 田林县| 临汾市| 长葛市| 山丹县|