DRF框架源码剖析
通过阅读,研究源码,复习Python高级语法以及系统掌握django rest framework
Charles-Su
字节跳动后端工程师,热爱编程,喜欢钻研和研究技术。
展开
-
从0学DRF(实战与源码剖析)——节流
介绍当服务的接口被频繁调用,我们可以使用负载均衡的策略,而DRF内部为我们实现了节流(访问频率控制的功能)节流内部原理概述DRF框架在我们访问的时候,会记录来访者的IP,会记录到字典里边作为Key ,而把访问的时间加入到一个列表里边作为字典的值。节流实现的算法面试问:自定义节流有思路吗?额,比如以5秒内只能访问3次为例,首先用户访问后,它的IP会作为字典的key,然后它的访问时间加入到...原创 2020-05-01 23:02:12 · 408 阅读 · 0 评论 -
从0学DRF(实战和源码剖析)——版本
使用方法版本一般的两种形式a. URL中通过GET传参()自定义:http://127.0.0.1:8000/api/users/?version=v2class ParamVersion(object): def determine_version(self, request, *args, **kwargs): version = request.query_params....原创 2020-05-01 23:00:46 · 343 阅读 · 0 评论 -
从零开始DRF框架源码剖析—序列化与反序列
序列化组件的使用先介绍一下序列化组件的使用,之后再详细介绍源码。序列化组件有三个Serializer(偏底层)、ModelSerializer(重点)、ListModelSerializer(辅助群改)我们先讲Serializer,首先在models.py创建类,然后进行数据迁移。class User(models.Model): SEX_CHOICES = [ ...原创 2020-05-01 23:00:02 · 628 阅读 · 0 评论 -
JWT原理详解
文章目录JWT介绍JWT认证原理详解JWT介绍jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目。与传统token认证的比较:面试的时候一定要提及到相比传统的token,JWT的token不用保存在服务端传统token认证用户登录成功后,服务端生成一个随机token给用户,并且在服务端(数据库或缓存)中保存一份token,以后用户再来访问时需携带token,服务端接收到token...原创 2020-04-30 13:01:12 · 810 阅读 · 0 评论 -
从0学DRF:源码剖析与实战(三)-----权限
源码过程分析由于CBV中,请求是先从dispatch()方法进去,我们像第一篇中研究认证一样,先看dispatch()的源码 def dispatch(self, request, *args, **kwargs): """ `.dispatch()` is pretty much the same as Django's regular dispatch...原创 2020-04-12 13:00:20 · 158 阅读 · 0 评论 -
从零学DRF:源码剖析与实战(四)——视图
文章目录两个视图基类介绍APIViewGenericAPIViewGenericAPIView源码五个视图扩展类常用功能子类视图(工具视图)使用示例源码分析两个视图基类介绍APIViewAPIView是REST framework提供的所有视图的基类,继承自Django的View父类。相比View,主要多出来的功能有:视图方法可以返回rest_framework中的Response对象...原创 2020-04-11 19:44:56 · 321 阅读 · 0 评论 -
从0学DRF(源码剖析)(一)—请求响应组件源码剖析
文章目录drf请求生命周期drf请求生命周期一个请求过来之后,需要先穿过中间件,依次执行中间件里边的process_request()方法,执行完process_request()之后,如果中间件里边实现了process_view()方法,再依次执行中间件各个process_view()方法,接下来就到了路由系统进行路由匹配,如果是FBV,路由匹配成功后,执行对应的视图函数,视图函数可以基于O...原创 2020-04-04 22:23:14 · 1263 阅读 · 0 评论 -
从0学DRF(源码剖析)(二)认证
源码分析Django的APIview的dispatch方法源码 def dispatch(self, request, *args, **kwargs): """ `.dispatch()` is pretty much the same as Django's regular dispatch, but with extra hooks ...原创 2020-02-29 22:07:43 · 750 阅读 · 0 评论