【DRF】 django rest framework总结
1.接口** ** """ 1、什么是接口:url+请求参数+响应数据 | 接口文档 2、接口规范: url:https,api,资源(名词复数),v1,get|post表示操作资源的方式,?过滤条件 响应数据:status,msg,results|data,url资源数据 """ 2.DRF入门 """ 1、封装风格 2、请求生命周期:走APIView的as_view => View的as_view调用APIView的dispatch => 分发给视图类的请求函数 => 响应 3、请求模块:二次封装request 4、解析模块:局部全局配置,form-data、urlencoding、json 5、渲染模块:局部全局配置,html、json 6、响应模块:Response(data, http_status, header) data={'detail': serializer_obj.errors} => http_status=4..|5.. # 4,5开头字段状态码,前台axios请求响应会解析到catch分支 axios({}).then().catch() 7、二次封装Response: i) 继承Response ii) 自定义参数格式化成data,传给 super().__init__(data=data) iii) 网络状态码、响应头等信息带给super().__init__() 8、异常模块:在请求生命周期中,分发请求任务执行时,被一个超大的try except包裹,一旦出现任何异常,都会交给exception_handler函数处理 自定义原因:系统只处理了部分,所以手动还需要处理;后期异常信息需要记录到日志文件 工作流程:先交给drf处理异常,如果有响应结果,代表drf已处理,如果是None,自己处理 """ 3.序列化组件** ** # 1)可以将model对象序列化成可以返回给前台的json数据 # 2)可以校验前台传来的数据,完成model的增与改 模型层 class User(models.Model): name = models.CharField(max_length=16) # 自定义插拔序列化字段 - 完成连表深度查询 @property def my_name(self): return self.name 序列化层 ...