django-rest-framework
为我们提供了 2 个常用的限流功能辅助类,分别是 AnonRateThrottle
和 UserRateThrottle
。AnonRateThrottle
用于限制未认证用户的访问频率,限制依据是用户的 ip。UserRateThrottle
用于限定认证用户,两种可以同时使用
全局配置
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': [
'rest_framework.throttling.AnonRateThrottle',
],
'DEFAULT_THROTTLE_RATES': {
'anon': '10/min',
}
}
视图里配置
from rest_framework.throttling import AnonRateThrottle
class CustomAnonRateThrottle(AnonRateThrottle):
THROTTLE_RATES = {"anon": "5/min"}
class XXXViewSet(ModelViewSet):
throttle_classes = [CustomAnonRateThrottle]