django ObjectDoesNotExist 和 DoesNotExist的用法
舉例吧,這樣更容易看的懂。
例1:
from django.core.exceptions import ObjectDoesNotExist try: pe = Plant.objects.get(id=12873) except ObjectDoesNotExist: print "uuuu" uuuu # 我隨意找了一個(gè)id=12873的對(duì)象來查詢,當(dāng)然,數(shù)據(jù)庫(kù)里沒有這個(gè)id,可以看到結(jié)果正常的打印出來
例2:
try: pe = Plant.objects.get(id=12873) except Plant.DoesNotExist: print "rrr" rrr # 結(jié)果也如期打印,那么來看看model的屬性 dir(Plant) ['DoesNotExist', 'MultipleObjectsReturned', '__class__', '__delattr__', '__dict__', '__doc__', ...... # DoesNotExist正在其中
總結(jié):ObjectDoesNotExist 和 DoesNotExist 表達(dá)的意思是相同的,只是寫法不同,一個(gè)需要導(dǎo)入,一個(gè)是model的屬性,如何使用看大家的個(gè)人習(xí)慣就好。
補(bǔ)充知識(shí):Django入門:DoesNotExist: User matching query does not exist.
先說說引發(fā)該問題的具體代碼
User.objects.filter(username='sss').get().username
當(dāng)在py腳本中使用以上代碼進(jìn)行username是否等于“sss”判斷時(shí),如果搜索username的值等于“sss”時(shí),其返回正確的結(jié)果,但如果搜索中不存在“sss”時(shí),會(huì)返回如標(biāo)題的錯(cuò)誤(DoesNotExist: User matching query does not exist.),程序終止運(yùn)行。終止運(yùn)行意味著后面的代碼不再被執(zhí)行,故而得不到自己想要的結(jié)果。
由此問題可以延伸到:遇到同類問題可以怎么解決:
可以使用try…except…語句將可能會(huì)導(dǎo)致程序終止的語句包涵其中,具體寫法如下:
try: User.objects.filter(username=username).get().username except: pass
附:try…except…語句是一個(gè)用來異常處理用法,即:當(dāng)所有可能會(huì)導(dǎo)致程序異常點(diǎn)都可以使用try…except…引導(dǎo)程序
以上這篇django ObjectDoesNotExist 和 DoesNotExist的用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除
這篇文章主要介紹了python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
pytorch 修改預(yù)訓(xùn)練model實(shí)例
今天小編就為大家分享一篇pytorch 修改預(yù)訓(xùn)練model實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
100?個(gè)?Python?小例子(練習(xí)題四)
這篇文章主要給大家分享100?個(gè)?Python?小例子,前文分享了一二三,本文的四十最后一篇了,這篇就把100道python小練習(xí)全分享完了,感興趣的小伙伴也可以去練習(xí)前幾期內(nèi)容,洗碗給這幾篇文章給你的學(xué)習(xí)帶來幫助2022-01-01
Python求兩點(diǎn)之間的直線距離(2種實(shí)現(xiàn)方法)
今天小編就為大家分享一篇Python求兩點(diǎn)之間的直線距離(2種實(shí)現(xiàn)方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python 計(jì)算一個(gè)字符串中所有數(shù)字的和實(shí)例
今天小編就為大家分享一篇python 計(jì)算一個(gè)字符串中所有數(shù)字的和實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
PyCharm配置KBEngine快速處理代碼提示沖突、配置命令問題
這篇文章主要介紹了PyCharm配置KBEngine,解決代碼提示沖突、配置命令,本文通過圖文并茂的形式給大家介紹的超詳細(xì),需要的朋友可以參考下2021-04-04

