drf综合复习

# 1 入门规范
    - 前后端开发模式
        -分离
        -混合
    -API接口
    -接口测试工具:APIFOX
    -序列化和反序列化
    -restful规范 10条
    -djangorestframework框架
    
    
# 2 请求和响应--》集成APIView
    -新的request
        -用起来跟之前一样
        -request.data
        -request.query_params
    -新的Response
        -data
        -code:http响应状态码
        -headers:http响应头
        
        
# 3 基于APIView---》写5个接口
    -自己序列化--》for循环--》列表套字典
    
    
# 4 序列化类(重点)
    -序列化   反序列化   校验
    -字段类:ListField,DictField
    -字段参数:read_only,write_only
    -序列化:
        -1 写个类,继承Serialzier
        -2 写要序列化的字段
        -3 视图类的方法中--》实例化得到对象--》serializer.data
        
    -校验
        -字段自己
        -局部钩子
        -全局钩子  validate
        
    -反序列化:保存,修改
        -1 写个类,继承Serialzier
        -2 写要 反 序列化的字段
        -3 视图类的方法中--》实例化得到对象--》serializer.is_valid-->serializer.save()
            -保存--》触发 create
            -修改--》触发update
        
   -ModelSerializer
     -跟表模型绑定--》model
     -fields=['表中不存在的','username']
     -extra_kwargs
     -username=serializer.CharField()
     -其他跟Serializer都完全一样
    
   -定制返回格式
    -source
    -序列化类中写
    -表模型中写
    -子序列化
        
# 5 解析编码格式,响应格式
    -局部配置:视图类上配置 
    -全局配置
    -局部禁用
    
    
# 6 视图层(重点)
    -APIView,GenericAPIView
        -APIView
            -类属性
            -as_view,dispatch--》重写了
        -GenericAPIView
            -类属性:serializer_class,queryset
            -方法:get_object,get_serialzier,get_queryset
    -ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestoryModelMixin
        -每个类中有一个方法  list,updata,create,destroy,retrieve
        
        
   -9个视图扩展类--》不用再写跟请求方式同名方法
        ListAPIView
         .....
        
        
   -10 视图集
        -ViewSetMixin
        -ViewSet
        -GenericSet
        -ModelViewSet
        -ReadModelViewSet
# 7 路由层
    -映射写法
    -自动生成:SimpleRouter,DefaultRouter
    -action装饰器
    -视图类的对象.action   方法名字符串
    
    
    
# 8 3大认证(重点)
    -认证:写个认证类,继承,重写
    -权限:
    -频率:重写get_cache_key
        -ip,用户id
        
        
# 9 排序,过滤
    -排序:内置的
    -过滤:内置,第三方,自定义
    
# 10 分页:
    -三种分页方式:基本分页最多
    
# 11 全局异常(重点)
    -写个函数--》配置文件配置--》出了异常都会走自己的函数
    -统一返回格式Response({code,msg})
    -统一定制返回的错误码
    -记录日志
        -request,view
        
        
        
# 12 接口文档编写


# 13 jwt认证(重点)


# 14 权限(acl,rbac)


# 补充
# 锁定解锁用户接口---》
    -前端传:用户id,lock:True,False
    -视图类继承谁?
        -不用序列化:APIView
        -自动生成路由:ViewSetMixin
        -/api/v1/user/3/locked/-->post请求--》请求体{lock:True}
        - -/api/v1/user/locked/-->post请求--》请求体{user_id:3,lock:True}
        @action(methods=[POST],detail=True)
        def locked(self,request,pk)
            user=根据pk拿到--》is_activite=True
            return Response()
            
    
# 发送短信
    -前端:get,mobile--》带在路径中
    -视图类继承谁?
        -不用序列化:APIView
        -自动生成路由:ViewSetMixin
        @ction(methods=[POST],detail=False)
        def send_sms(self,request):
            mobile=requset.query_params.get('mobile')
            发送短信方法(mobile)
            return Response()
           
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值