一、示例展示
=============******=============
1、BaseThrottle原类
2、基于用户IP限制访问频率 (了解)
3、基于用户IP显示访问频率(利于Django缓存) # 经常使用
4、匿名时用IP限制+登录时用Token限制
=============******=============
全局使用:
in settings.py
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': [
'api.utils.throttles.throttles.LuffyAnonRateThrottle',
'api.utils.throttles.throttles.LuffyUserRateThrottle',
],
'DEFAULT_THROTTLE_RATES': {
'anon': '10/day',
'user': '10/day',
'luffy_anon': '10/m',
'luffy_user': '20/m',
},
}
1、BaseThrottle原类
class BaseThrottle(object):
"""
Rate throttling of requests.
"""
def allow_request(self, request, view): #判断是否允许请求,来访问
"""
Return `True` if the request should be allowed, `False` otherwise.
"""
raise NotImplementedError(