一、作用:可以根据指定的特征限制访问频率。
二、以ip限制器为例
1、新建一个类,需要继承rest_framework.throttling.SimpleRateThrottle。
2、重写get_cache_key,该方法的返回值就是限制器的限制特征。
3、代码:
class NewThrottle(SimpleRateThrottle): scope='aaa' # 特征字符,后续配置中需要以此字符设置频率 def get_cache_key(self, request, view): return request.META.get('REMOTE_ADDR') # 返回ip
4、配置:
①全局配置,setting.py中:
REST_FRAMEWORK={ 'DEFAULT_THROTTLE_CLASSES': ( 'utils.throttling.MyThrottle',), 'DEFAULT_THROTTLE_RATES': { 'aaa': '3/m',}, }
②局部配置,视图类中:
default_throttle_classes = (NewThrottle1, NewThrottle2) default_throttle_rates = { 'aaa': '3/m', 'bbb': '6/m'}