django get_object_or_404(modelname,*args ,**kwargs) 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 用model.object.get()方法查詢對象,若是對象不存在的話,會拋出一個DoesNotExist的異常,這樣將會使模型層與視圖層耦合在一塊兒 Django最重要的一個設計目標就是保持鬆耦合。 用get_object_or_404能夠使模型層和視圖層低耦合。