django get_object_or_404


django get_object_or_404 是django shortcuts模塊里面一個比較簡便的方法,特別是用django get來操作數據庫的時候,可以幫 我們少寫一些代碼,加快開發速度。

get_object_or_404的介紹: 我們原來調用django 的get方法(model.object.get()),如果查詢的對象不存在的話,會拋出一個DoesNotExist的異常, 現在我們調用django get_object_or_404方法,它會默認的調用django 的get方法, 如果查詢的對象不存在的話,會拋出一個Http404的異常,我感覺這樣對用戶比較友好, 如果用戶查詢某個產品不存在的話,我們就顯示404的頁面給用戶,比直接顯示異常好。

get_object_or_404一般需要3個參數: 
1. modelname:一個model,manage,或query對象。 
2. *args 
3. **kwargs 而后面的*args,**kwargs則是查詢的時候用到的參數。

下面用個例子看來下:
from django.shortcuts import get_object_or_404 
product = get_object_or_404(Product, pk=1) 

Product是要查詢的model,后面的pk=1是查詢條件,你可以根據你需要查詢的情況來寫條件。 上面的例子也可以寫成下面這樣的形式:

from django.http import Http404

try:
    product = Product.objects.get(pk=1)
except MyModel.DoesNotExist:
    raise Http404

看來用django get_object_or_404方法可以省下你很多操作,有興趣可以看看django.shortcuts 模塊包里面的其他的方法, 會讓你能夠在提高編程的效率。

 

 

#####################

用model.object.get()方法查詢對象,如果對象不存在的話,會拋出一個DoesNotExist的異常,這樣將會使模型層與視圖層耦合在一起

Django最重要的一個設計目標就是保持松耦合。 用get_object_or_404可以使模型層和視圖層低耦合。

一些可控的耦合將會在django.shortcuts 模塊中介紹。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM