天天看点

CBV源码 分析

APIView做了三件事:

将原来的request对象包装成了新的request对象

通过APIView的initialize_request,包装的

以后再在视图类中用的request对象都是新的

在执行视图类中的方法之前,执行了三大认证

self.perform_authentication(request)

self.check_permissions(request)

self.check_throttles(request)

处理了全局异常

只要继承了APIView,以后用的request对象,就是drf的request对象了。 在执行视图类的方法之前,会先执行三大认证,如果有异常,会被捕获并处理。