官网文档 :http://www.django-rest-framework.org/api-guide/throttling/
settings 配置
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': ( # 防爬虫机制
'rest_framework.throttling.AnonRateThrottle', # 匿名用户显示
'rest_framework.throttling.UserRateThrottle' # 登录用户显示
),
'DEFAULT_THROTTLE_RATES': {
'anon': '100/day', # 匿名用户 限制 一天一百次 可自己设置
'user': '1000/day' # 登录用户 限制 同时还要在 views中配置
}
}
views 配置
在需要的限制的view中
加入
class GoodsListViewSet(CacheResponseMixin,mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
#ident = request.user.pk 登录用户ip
#request.META.get('REMOTE_ADDR') 匿名用户ip
throttle_classes = (UserRateThrottle,AnonRateThrottle) #加上这句话
网友评论