Python學習————檢視,路由,三大認證
阿新 • • 發佈:2020-07-28
檢視
-兩個檢視基類 APIView,GenericAPIView(繼承APIView):涉及到資料庫和序列化類的操作,儘量用GenericAPIView -5個檢視擴充套件類(父類都是object) CreateModelMixin:create DestroyModelMixin:destory ListModelMixin RetrieveModelMixin UpdateModelMixin -9個檢視子類(GenericAPIView+上面5個檢視擴充套件類中的一個或多個) RetrieveUpdateDestroyAPIView CreateAPIView RetrieveAPIView DestroyAPIView RetrieveUpdateAPIView ListCreateAPIView UpdateAPIView ListAPIView RetrieveDestroyAPIView -檢視集 -ModelViewSet:5大介面都有了 -ReadOnlyModelViewSet:獲取一條和獲取多條的介面 -GenericViewSet:ViewSetMixin+GenericAPIView ViewSet:ViewSetMixin+APIView ViewSetMixin:類重寫了as_view,路由配置就變樣了
路由
-基本配置:跟之前一樣 -有action的:必須繼承ViewSetMixin -自動生成:DefaultRouter和SimpleRouter -匯入,例項化得到物件,註冊多個,物件.urls(自動生成的路由) -路由相加urlpatterns+=router.urls/include:path('', include(router.urls)) -檢視類中自己定義的方法,如何自動生成路由 -在自己定義的方法上加裝飾器(action) -兩個引數methods=[GET,POST],表示這兩種請求都能接受 -兩個引數detail=True,表示生成帶pk的連線
三大認證
-認證元件:校驗使用者是否登入 -寫一個認證類,繼承BaseAuthentication,重寫authenticate,內部寫認證邏輯,認證通過返回兩個值,第一個是user,認證失敗,拋去異常 -全域性使用,區域性使用,區域性禁用 -許可權:校驗使用者是否有許可權進行後續操作 -寫一個類,繼承BasePermission,重寫has_permission,True和False -全域性使用,區域性使用,區域性禁用 -頻率:限制使用者訪問頻次 -寫一個類,繼承SimpleRateThrottle,重寫get_cache_key,返回什麼,就以誰做限制,scop=luffy欄位,需要跟setting中的key對應 luffy:3/h(一小時訪問三次) -全域性配置,區域性配置,區域性禁用 -需求:傳送簡訊驗證碼的介面,一分鐘只能傳送一次,區域性使用,配在檢視類上