DRF限流组件源码分析
开发过程中,如果某个接口不想让用户访问过于频繁,可以使用限流的机制
限流,限制用户访问频率,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。
- 对于匿名用户,使用用户IP作为唯一标识。
- 对于登录用户,使用用户信息主键、用户ID或名称作为唯一标识。
3.5.0 限流组件的两种返回值
- 返回True,表示当前限流类允许访问,继续执行后续的限流类。
- 返回False,表示当前限流类不允许访问,继续执行后续的限流类。所有的限流类执行完毕后,读取所有不允许的限流,并计算还需等待的时间。
- 抛出异常,表示当前限流类不允许访问,后续限流类不再执行。
3.5.1 单视图应用
3.5.2 多视图应用
3.5.3 单视图多视图结合
3.5.4 限流组件配置方法
-
基于drf提供的限流类
-
drf提供的限流类源码分析
3.5.5 源码分析
全局配置
REST_FRAMEWORK = {
"DEFAULT_THROTTLE_CLASSES":["xxx.xxx.xx.限流类", ],
"DEFAULT_THROTTLE_RATES": {
"user": "10/m",
"xx":"100/h"
}
}