天天看點

CBV源碼 分析

APIView做了三件事:

将原來的request對象包裝成了新的request對象

通過APIView的initialize_request,包裝的

以後再在視圖類中用的request對象都是新的

在執行視圖類中的方法之前,執行了三大認證

self.perform_authentication(request)

self.check_permissions(request)

self.check_throttles(request)

處理了全局異常

隻要繼承了APIView,以後用的request對象,就是drf的request對象了。 在執行視圖類的方法之前,會先執行三大認證,如果有異常,會被捕獲并處理。