摘要:
知识点:Serializer(偏底层)、ModelSerializer(重点)、ListModelSerializer(辅助群改) 为什么要使用序列化组件? 视图中查询到的对象和queryset类型不能直接作为数据返回给前台,所以要使用序列化组件 1. 定义Serializer 路由层 urls.p 阅读全文
摘要:
响应模块 响应类构造器:rest_framework.response.Response def __init__(self, data=None, status=None, template_name=None, headers=None, exception=False, content_typ 阅读全文
摘要:
为什么要自定义异常模块 1)所有经过drf的APIView视图类产生的异常,都可以提供异常处理方案 2)drf默认提供了异常处理方案(rest_framework.views.exception_handler),但是处理范围有限 3)drf提供的处理方案两种,处理了返回异常现象,没处理返回None 阅读全文
摘要:
解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 2)我们可以通过配置,来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析 3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图类,让它们可以按照配置规则选择性解析数据 源码入口 # APIView类的di 阅读全文
摘要:
#渲染模块 源码入口 渲染模块 第四步: 对返回结果进行再次加工, self.response = self.finalize_response(request, response, *args, **kwargs) 源码分析 # 最后解析reponse对象数据 self.response = se 阅读全文
摘要:
#请求模块:request对象 源码入口:APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) class Test(APIView): def get(self, request, *arg 阅读全文
摘要:
#DRF请求生命周期 根据应用中urls.py,走as_view方法,但是视图类没有该方法,所以请求走的是APIView的as_view方法 在APIView的as_view调用父类(django原生View)的as_view,同时还禁用了 csrf 认证 在父类(django原生View)的as_ 阅读全文
摘要:
#环境安装与搭建 #要求 REST framework 需要一下依赖: Python (3.5, 3.6, 3.7, 3.8, 3.9) Django (2.2, 3.0, 3.1) DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Dja 阅读全文
摘要:
DRF简介 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。 在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的: 增:校验请求数据 → 执行反序列 阅读全文
摘要:
restful接口规范 接口规范:就是为了采用不同的后台语言,也能使用同样的接口获取到同样的数据 如何写接口:接口规范是 规范化书写接口的,写接口要写 url、响应数据 注:如果将请求参数也纳入考量范围,那就是在写 接口文档 两大部分: url 1) 用api关键字标识接口url api.baidu 阅读全文