上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 28 下一页
摘要: 前言 上篇我们通过mixin可以非常方便的实现一些CURD操作。实际上针对这些mixin,DRF还进一步的进行了封装,放到generics下。有以下generic类视图: generics.ListAPIView:实现获取列表的。 generics.CreateAPIView:实现创建数据的。 ge 阅读全文
posted @ 2021-06-10 11:32 Silent丿丶黑羽 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 前言 mixins翻译成中文是混入,组件的意思。在DRF中,针对获取列表,检索,创建等操作,都有相应的mixin,一般我们自定义创建的类视图都会继承自GenericAPIView和Mixins一起使用 mixins工具集 mixins.py文件中有5个类,分别是 CreateModelMixin:类 阅读全文
posted @ 2021-06-10 09:13 Silent丿丶黑羽 阅读(348) 评论(1) 推荐(0) 编辑
摘要: 源码分析 GenericAPIView继承自APIView,也就是在APIView基础上再做了一层封装,源码如下: class GenericAPIView(views.APIView): queryset = None serializer_class = None lookup_field = 阅读全文
posted @ 2021-06-09 17:13 Silent丿丶黑羽 阅读(321) 评论(0) 推荐(1) 编辑
摘要: 视图家族 drf的视图总共分为以下4个,对应4个源码文件 views:视图类 generics:工具视图 mixins:视图工具集 viewsets:视图集 学习曲线 我们学习视图,可以按照以下的曲线来学习 APIView:在views源码文件下面,继承自View,前面我们已经分析过源码了 Gene 阅读全文
posted @ 2021-06-09 13:43 Silent丿丶黑羽 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 前言 有时候我们使用drf的Response,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式 return Response({ "status": 0, "message": "成功", "results": serializer.data }) 这样会非常麻烦,我们想默认就有stat 阅读全文
posted @ 2021-06-09 11:37 Silent丿丶黑羽 阅读(184) 评论(0) 推荐(0) 编辑
摘要: APIView视图类 在DRF中,推荐使用类视图,因为类视图可以通过继承的方式把一些重复性的工作抽取出来,而使得代码更加简洁。当然如果你不想使用类视图,那么就用@api_view装饰器包裹一下就可以。 关于视图的逻辑,一共有10个 单查、群查 单增、群增 单删、群删 单全局改、单局部改 群全局改、群 阅读全文
posted @ 2021-06-09 11:11 Silent丿丶黑羽 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 前言 渲染模块的原理和解析模块是一样,drf默认的渲染有2种方式,一种是json格式,另一种是模板方式。 渲染模块源码入口 入口:APIView类中dispatch方法中的:self.response = self.finalize_response(request, response, *args 阅读全文
posted @ 2021-06-08 14:38 Silent丿丶黑羽 阅读(184) 评论(0) 推荐(1) 编辑
摘要: 异常模块源码入口 APIView类中dispatch方法中的:response = self.handle_exception(exc) 源码分析 我们点击handle_exception跳转,查看该方法源码 def handle_exception(self, exc): """ Handle a 阅读全文
posted @ 2021-06-08 13:33 Silent丿丶黑羽 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 前言 上一篇分析了请求模块的源码,如下: def initialize_request(self, request, *args, **kwargs): """ Returns the initial request object. """ parser_context = self.get_par 阅读全文
posted @ 2021-06-08 06:06 Silent丿丶黑羽 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 前言 APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块 请求模块:request对象 源码入口 APIView类中dispatch方法中的:request=self.iniialize_request(*args, * 阅读全文
posted @ 2021-06-07 21:14 Silent丿丶黑羽 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 28 下一页