对接口访问的频次进行限制,以减轻服务器压力
全局配置:
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
'rest_framework.throttling.AnonRateThrottle',
'rest_framework.throttling.UserRateThrottle'
),
'DEFAULT_THROTTLE_RATES': {
'anon': '100/day', # 匿名用户
'user': '1000/day' # 登录的本网站用户
}
}
刷新效果:
在具体视图中通过throttle_classess属性来配置,second,minte,hour,day指明周期
from rest_framework.throttling import UserRateThrottle
throttle_classes = (UserRateThrottle,)
限流多用于限制日流量
匿名用户:可以投票浏览,不需要是本网站的用户,不需要登录 IP限制
登录用户通过users.id限制settings 下面继续加
在不同的接口中指定不同的频次 与id.ip无关
可选限流类
1) AnonRateThrottle
限制所有匿名未认证用户,使用IP区分用户。
使用DEFAULT_THROTTLE_RATES['anon']
来设置频次
2)UserRateThrottle
限制认证用户,使用User id 来区分。
使用DEFAULT_THROTTLE_RATES['user']
来设置频次
3)ScopedRateThrottle
限制用户对于每个视图的访问频次,使用ip或user id。