1. 程式人生 > 實用技巧 >Python學習————檢視,路由,三大認證

Python學習————檢視,路由,三大認證

檢視

	-兩個檢視基類 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(一小時訪問三次)
    
    -全域性配置,區域性配置,區域性禁用
    -需求:傳送簡訊驗證碼的介面,一分鐘只能傳送一次,區域性使用,配在檢視類上