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(一小时访问三次)
    
    -全局配置,局部配置,局部禁用
    -需求:发送短信验证码的接口,一分钟只能发送一次,局部使用,配在视图类上
posted @ 2020-07-28 18:57  Dimple_Y  阅读(141)  评论(0编辑  收藏  举报