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可以使模型層和視圖層低耦合。