一、作用:可以根据指定的特征限制访问频率。

二、以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'}

 

posted on 2020-05-22 12:01  焚音留香  阅读(142)  评论(0编辑  收藏  举报