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

對Django項目中的ORM映射與模糊查詢的使用詳解

 更新時間:2019年07月18日 09:06:19   作者:dreamingcrazy  
今天小編就為大家分享一篇對Django項目中的ORM映射與模糊查詢的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

ORM映射

什么是ORM映射?在筆者認為就是對SQL語句的封裝,所寫語句與SQL對應語句含義相同,使開發(fā)更加簡單方便,不過也是存在弊端的,使程序運行效率下降。例如:

UserInfo.objects.get(id=2)

等于

select * from user_userinfo where id=2

修改管理器(models.py)

導入新的包:from django.db import models

進行模糊查詢

開始進行查找前我們先來認識filter()方法。

這是一個過濾器方法用于過濾掉不符合條件的元素。

值得一提的是其內(nèi)自帶方法函數(shù)的引用方式為‘__方法名稱'。

__exact 精確等于 like ‘a(chǎn)aa'

__iexact 精確等于 忽略大小寫 ilike ‘a(chǎn)aa'

__contains 包含 like ‘%aaa%'

__icontains 包含 忽略大小寫 ilike ‘%aaa%',但是對于sqlite來說,contains的作用效果等同于icontains。

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

__in 存在于一個list范圍內(nèi)

__startswith 以…開頭

__istartswith 以…開頭 忽略大小寫

__endswith 以…結(jié)尾

__iendswith 以…結(jié)尾,忽略大小寫

__range 在…范圍內(nèi)

__year 日期字段的年份

__month 日期字段的月份

__day 日期字段的日

__isnull=True/False

舉幾個例子:

obj1 = UserInfo.objects.filter(user_name__contains='王')#以‘王'開頭的user__name
obj2 = UserInfo.objects.filter(user_name__endswith='王')#以‘王'結(jié)尾的user__name
obj3 = UserInfo.objects.filter(id__gte=5)#ID大于等于5的
obj5 = UserInfo.objects.filter(id__exact=5)#id等于5的
obj6 = UserInfo.objects.filter(id__in=[1,3,5])#id等于1,3,5,的

exclude方法,排除選項。

obj8 = UserInfo.objects.filter(password='123456',id__gt=2).exclude(phone=188)
#找到符合filter的內(nèi)容后排除phone等于188的,它的另一種寫法為
from django.db.models import Q
obj = UserInfo.objects.filter(Q(password='123456') & Q(id__gt=2) & ~Q(phone=188))

計算和和最大值:

from django.db.models import Sum,Max,Min
obj = UserInfo.objects.aggregate(Sum('id'))
obj = UserInfo.objects.aggregate(Max('id'))
obj = UserInfo.objects.aggregate(Min('id'))

統(tǒng)計個數(shù)

print(UserInfo.objects.count())#注:print只可于終端查看

范圍查找

obj = UserInfo.objects.all()[1:3]#左閉右開,只查找了1和2

去重復

obj = person.useraddress_set.all()

而get方法與filter的最大區(qū)別為,get只能返回一個數(shù)據(jù),filter可以返回多個,在get查找到兩個以上數(shù)據(jù)時就會報錯。

obj4 = UserInfo.objects.get(id=5)
city = UserAddress.objects.get(detail='北京望京')

以上這篇對Django項目中的ORM映射與模糊查詢的使用詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在Python IDLE 下調(diào)用anaconda中的庫教程

    在Python IDLE 下調(diào)用anaconda中的庫教程

    這篇文章主要介紹了在Python IDLE 下調(diào)用anaconda中的庫教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Tornado Web Server框架編寫簡易Python服務器

    Tornado Web Server框架編寫簡易Python服務器

    這篇文章主要為大家詳細介紹了Tornado Web Server框架編寫簡易Python服務器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 10分鐘學會使用python實現(xiàn)人臉識別(附源碼)

    10分鐘學會使用python實現(xiàn)人臉識別(附源碼)

    這篇文章主要介紹了10分鐘學會使用python實現(xiàn)人臉識別(附源碼),幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • python實現(xiàn)批量命名照片

    python實現(xiàn)批量命名照片

    這篇文章主要為大家詳細介紹了python實現(xiàn)批量命名照片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 解決matplotlib庫show()方法不顯示圖片的問題

    解決matplotlib庫show()方法不顯示圖片的問題

    今天小編就為大家分享一篇解決matplotlib庫show()方法不顯示圖片的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python基礎之面向?qū)ο筮M階詳解

    Python基礎之面向?qū)ο筮M階詳解

    這篇文章主要為大家詳細介紹了Python基礎之面向?qū)ο筮M階,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • PyTorch實現(xiàn)手寫數(shù)字的識別入門小白教程

    PyTorch實現(xiàn)手寫數(shù)字的識別入門小白教程

    這篇文章主要介紹了python實現(xiàn)手寫數(shù)字識別,非常適合小白入門學習,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Python二維碼生成庫qrcode安裝和使用示例

    Python二維碼生成庫qrcode安裝和使用示例

    這篇文章主要介紹了Python二維碼生成庫qrcode安裝和使用示例,本文講解了qrcode的安裝、生成二維碼、生成帶圖標的二維碼等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • 教你如何使用Python下載B站視頻的詳細教程

    教你如何使用Python下載B站視頻的詳細教程

    這篇文章主要介紹了教你如何使用Python下載B站視頻的詳細教程,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python+Pygame實現(xiàn)之見縫插針游戲的實現(xiàn)

    Python+Pygame實現(xiàn)之見縫插針游戲的實現(xiàn)

    這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實現(xiàn)見縫插針游戲,文中的示例代碼講解詳細,對我們學習Python游戲開發(fā)有一定幫助,需要的可以參考一下
    2022-07-07

最新評論

六安市| 棋牌| 高要市| 南安市| 拜城县| 嘉鱼县| 信丰县| 于都县| 云阳县| 浏阳市| 梁河县| 天柱县| 达拉特旗| 逊克县| 辽阳县| 额济纳旗| 万盛区| 华坪县| 汶川县| 广昌县| 长汀县| 曲松县| 九江县| 巴塘县| 读书| 深圳市| 恭城| 威信县| 缙云县| 宜宾市| 常州市| 新建县| 铜陵市| 天峨县| 南郑县| 株洲市| 兴义市| 鄂尔多斯市| 潜江市| 普安县| 城步|