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能够使模型层和视图层低耦合。