一、昨日内容复习
""" 视图家族
1、View:将请求方式与视图类的同名方法建立映射,完成请求响应
2、APView:
1)View的所有功能;
2)重写as_view禁用csrf认证;
3)重写dispatch:请求、响应、渲染、异常、解析、三大认证
4)多了一堆类属性,可以完成视图类的局部配置
3、GenericAPIView:
1)APView的所有功能
2)三个方法:get_object()、get_queryset()、get_serializer()
3)三个属性:queryset、serializer_class、lookup_url_kwarg
4、mixins包:
1)五大工具类:RetrieveModelMixin, ListModelMixin, CreateModelMixin, UpdateModelMixin, DestroyModelMixin
2)六大工具方法:retrieve、list、create、update、partial_update、destroy
5、generics包:
1)一堆mixins工具类与GenericAPIView视图基类组合
6、ViewSetMixin
1)重写as_view(),完成请求方式与视图方法的自定义映射
as_view({'get': 'my_get'})
7、视图集基类:
ViewSet(ViewSetMixin, APIView):可以自定义映射关系的APIView
GenericViewSet(ViewSetMixin, GenericAPIView):可以自定义映射关系的GenericAPIView
8、常用Model视图集
1)ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet)
某一资源的六大操作视图集
2)ReadOnlyModelViewSet(mixins.RetrieveModelMixin,
mixins.ListModelMixin,
GenericViewSet)
某一资源的只读操作视图集
"""
二、今日内容总结
"""
1、认证、权限、频率的工作原理
基础哪个类、重写哪个方法、方法的实现体要完成什么事
系统的认证类:都很少使用,常用的前后台分类认证 - jwt(json web token)
系统的权限类:
AllowAny:不限制
IsAuthenticated:必须是登录用户
IsAdminUser:必须是后台用户
IsAuthenticatedOrReadOnly:读操作无限制,其他操作需要登录
2、自定义User表
继承AbstractUser、配置AUTH_USER_MODEL、配置admin(UserAdmin密文操作密码)
3、一个需要登录后的群查接口UserList、一个获取LoginAPIView成功的Token
4、LoginAPIView要根据请求的usr、pwd交给序列化类,全局校验得到 user、token
签发token的算法
5、自定义认证类,校验token
校验token的算法
6、自定义权限类
指定权限规则
7、登录接口必须完成所有认证权限局部禁用,权限接口在权限类中局部配置自定义认证权限类(或在全局配置)
"""
三、今日练习
练习A
"""
1、整理今天所学知识点
核心:签发token和校验token算法,自定义认证类和权限类,视图类配置自定义认证类和权限类
2、新建项目,实现LoginAPIView,完成账号密码登录签发token给前台
3、基于User表,写一个 个人中心接口(这个接口可以访问用户所有信息,密码就用八个#填充),该接口需要登录就可以访问(自定义认证类完成token校验,权限类系统有提供),不同的用户访问得到的是该用户的详情信息
"""
B作业
"""
1、基于A作业需求,写一个修改用户密码的接口,修改密码后,用新密码测试登录
"""