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

對(duì)Django項(xiàng)目中的ORM映射與模糊查詢的使用詳解

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

ORM映射

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

UserInfo.objects.get(id=2)

等于

select * from user_userinfo where id=2

修改管理器(models.py)

導(dǎo)入新的包:from django.db import models

進(jìn)行模糊查詢

開始進(jìn)行查找前我們先來認(rèn)識(shí)filter()方法。

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

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

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

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

__contains 包含 like ‘%aaa%'

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

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

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

__startswith 以…開頭

__istartswith 以…開頭 忽略大小寫

__endswith 以…結(jié)尾

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

__range 在…范圍內(nèi)

__year 日期字段的年份

__month 日期字段的月份

__day 日期字段的日

__isnull=True/False

舉幾個(gè)例子:

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方法,排除選項(xiàng)。

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))

計(jì)算和和最大值:

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)計(jì)個(gè)數(shù)

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

范圍查找

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

去重復(fù)

obj = person.useraddress_set.all()

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

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

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

相關(guān)文章

  • python使用正則來處理各種匹配問題

    python使用正則來處理各種匹配問題

    這篇文章主要介紹了python使用正則來處理各種匹配問題,本文通過實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python數(shù)據(jù)合并的concat函數(shù)與merge函數(shù)詳解

    Python數(shù)據(jù)合并的concat函數(shù)與merge函數(shù)詳解

    大家都知道concat()函數(shù)可以沿著一條軸將多個(gè)對(duì)象進(jìn)行堆疊,其使用方式類似數(shù)據(jù)庫中的數(shù)據(jù)表合并,在使用merge()函數(shù)進(jìn)行合并時(shí),默認(rèn)會(huì)使用重疊的列索引做為合并鍵,即取行索引重疊的部分,本文給大家介紹python?數(shù)據(jù)合并concat函數(shù)與merge函數(shù),感興趣的朋友一起看看吧
    2022-05-05
  • python中yield的用法詳解

    python中yield的用法詳解

    這篇文章主要介紹了python中yield的用法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    Python三百行代碼實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    飛機(jī)大戰(zhàn)想必大家可能玩過微信的這款小游戲,給我的感覺是這款游戲怎么可以做得這么好呢,操作簡單,容易上手,簡直是“老少皆宜”啊,既然這款游戲這么棒,能否自己動(dòng)手用 Python 來實(shí)現(xiàn)呢?事實(shí)證明是可以的
    2022-09-09
  • 結(jié)合Python的SimpleHTTPServer源碼來解析socket通信

    結(jié)合Python的SimpleHTTPServer源碼來解析socket通信

    SimpleHTTPServer是Python中一個(gè)現(xiàn)成的HTTP服務(wù)器例子,本文我們將結(jié)合Python的SimpleHTTPServer源碼來解析socket通信,我們先來看一下socket的基本概念:
    2016-06-06
  • 如何利用飾器實(shí)現(xiàn) Python 函數(shù)重載

    如何利用飾器實(shí)現(xiàn) Python 函數(shù)重載

    這篇文章主要介紹了如何利用飾器實(shí)現(xiàn) Python 函數(shù)重載,需要的朋友可以參考下面文章內(nèi)容,希望能幫助到你
    2021-09-09
  • pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實(shí)例

    pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實(shí)例

    這篇文章主要介紹了pytorch讀取圖像數(shù)據(jù)轉(zhuǎn)成opencv格式實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Django?報(bào)錯(cuò):Broken?pipe?from?('127.0.0.1',?58924)的解決

    Django?報(bào)錯(cuò):Broken?pipe?from?('127.0.0.1',?5892

    這篇文章主要介紹了Django?報(bào)錯(cuò):Broken?pipe?from?('127.0.0.1',?58924)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python?urllib庫的使用指南詳解

    Python?urllib庫的使用指南詳解

    所謂網(wǎng)頁抓取,就是把URL地址中指定的網(wǎng)絡(luò)資源從網(wǎng)絡(luò)流中讀取出來,保存到本地。?在Python中有很多庫可以用來抓取網(wǎng)頁,本文將講解其中的urllib庫,感興趣的可以了解一下
    2022-04-04
  • python將下載到本地m3u8視頻合成MP4的代碼詳解

    python將下載到本地m3u8視頻合成MP4的代碼詳解

    這篇文章主要介紹了python將下載到本地m3u8視頻合成MP4的代碼詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論