主要内容: https://www.cnblogs.com/GGGG-XXXX/articles/9682663.html
第94天的文件夹里(c盘workspace)
1 版本:
源码流程: 主要是重写了determine_version版本, 返回值是版本
2 权限:
源码流程: 主要是重写了has-permission方法, 返回值默认是true, 所有人都有权限
3 频率:
a : 原理:
1 拿到用户的IP地址
2 访问记录: {IP: [最近访问时间,....第一次的访问时间]}
3 确保这个列表最近的访问时间以及最远的访问时间差 《= 规定时间
4 判断列表的长度 《= 设置的访问频率
b : 使用DRF内部的配置类:
必须实现get_cache_key()方法
必须配置scope
setting中的配置:
REST_FRAMEWORK = {
"DEFAULT_THROTTLE_RATES": {
"WD": "3/m"} }
c : 使用DRF的频率类
class DRFthrottle(SimpleRateThrottle): scope = 'WD' def get_cache_key(self, request, view): return self.get_ident(request)