DRF--频率

简介: DRF--频率

频率


频率是限制请求访问次数的,比如别人用爬虫爬取我们的网站时,在很短的时间内会产生大量的请求,会大大的增加我们服务器的压力,所以对某些接口,进行频率的限制还是很有必要的。

DRF给我们提供了频率的类,我们可以直接拿来用就可以了,可以在throtting里去看看都给我们提供了哪些类。

from rest_framework import throttling

使用DRF给我们提供的频率类,但要我们改写get_cache_key方法

from rest_framework.throttling import SimpleRateThrottle
class MyThrottle(SimpleRateThrottle):
    scope = "zz"  # 值自己定义,会在settings.py里用到
    def get_cache_key(self, request, view):  # 要重写get_cache_key方法
        # 拿IP地址
        return self.get_ident(request)

在settings.py里进行全局的配置

REST_FRAMEWORK = {
    "DEFAULT_THROTTLE_RATES":{
        "zz":"3/m"  # zz 为自己写的
    }
}

里面的3/m是什么意思呢?m表示一分钟,3/m表示一分钟只能访问三次,还有一些其他的参数,可以自己设置

{'s': 1, 'm': 60, 'h': 3600, 'd': 86400, }

如果把m改为h,表示一小时只能访问三次

在写个接口

class TestPermission(APIView):
    authentication_classes = [MyAuth, ]  # 认证
    permission_classes = [MyPermission, ]  # 权限
    throttle_classes = [MyThrottle, ]  # 频率,一定要有权限才生效
    def get(self, request):
        return Response("恭喜你,你有访问权限")

这样配置好了之后,当我们一分钟超过了三次就会限制我们访问


相关文章
|
4月前
|
Linux
USRP N320更改主时钟频率及测试
USRP N320更改主时钟频率及测试
66 0
|
11天前
|
NoSQL 算法 Java
接口限流是一种控制访问频率的技术
在高并发场景下,合理的接口限流、防重复提交及接口防抖机制对保障系统稳定性至关重要。本文介绍了如何利用AOP在不改变业务代码的前提下,灵活添加这些功能。具体包括:通过`@AccessLimit`注解实现接口限流,利用Redis进行计数与控制;通过`@RepeatSubmit`注解防止重复提交,确保数据一致性;通过`@AntiShake`注解实现接口防抖,提升用户体验。此外,提供了基于Redisson和Spring Cloud的实现示例。
19 4
|
前端开发 安全 API
DRF--介绍和安装
DRF--介绍和安装
|
前端开发
DRF--验证器
DRF--验证器
|
存储 Oracle 关系型数据库
Oracle优化07-分析及动态采样-DBMS_STATS 包
Oracle优化07-分析及动态采样-DBMS_STATS 包
112 0
Oracle优化07-分析及动态采样-DBMS_STATS 包
|
算法 异构计算
基于FPGA的控制参数在线实时调整的自适应PI控制器设计,包含testbench测试程序
基于FPGA的控制参数在线实时调整的自适应PI控制器设计,包含testbench测试程序
201 0
|
算法 测试技术 分布式数据库
ES本地分片逆文档频率评分策略(Shard Local IDF)导致的评分异常原理解析
ES本地分片逆文档频率评分策略(Shard Local IDF)导致的评分异常原理解析
ES本地分片逆文档频率评分策略(Shard Local IDF)导致的评分异常原理解析
|
C++
C++ 模块累积的理解
C++ 模块累积的理解
75 0
|
前端开发 中间件 应用服务中间件
Laravel 请求周期详解
Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。
131 0
|
JSON 网络安全 数据格式
requests库常用到的7个主要方法及控制访问参数
requests库常用到的7个主要方法及控制访问参数
179 0