Django的流量控制

易小灯塔
2020-09-13 / 0 评论 / 6,279 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年09月13日,已超过1534天没有更新,若内容或图片失效,请留言反馈。

APIView会在进行dispatch()分发前,对请求进行身份认证、权限检查、流量控制

对接口访问的频次进行限制,减少对服务器的压力

在settings.py添加一个REST_FRAMEWORK字典

REST_FRAMEWORK = {
    "DEFAULT_THROTTLE_CLASS":(
    	'rest_framework.throttling.AnonRateThrottle',#未登录用户
        'rest_framework.throttling.UserRateThrottle'#登录用户
    ),
    "DEFAULT_THROTTLE_RATES':{
    'anon':'100/day',    #未登录用户 每天100次
    'user':'1000/day'	  #登录用户  每天1000次
}
}
#DEFAULT_THROTTLE_RATES也可以使用second,minutes,hour或day指明周期 

 

 

指明指定视图的访问次数:

class ContactListView(APIView):
    throttle_scope = 'contacts'
    
class ContactDetailView(APIView):
    throttle_scope = 'contacts'
    
class UploadView(APIView):
    throttle_scope = 'uploads'
REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES':(
    	'rest_framework.throttling.ScopedRateThrottle',
    ),
    'DEFAULT_THROTTLE_RATES':{
        'contacts':'1000/day',
        'uploads':'20/day'
    }
} 

 

0

评论 (0)

取消