django中限流Throttling

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

使用:

可以进行全局配置

REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
'rest_framework.throttling.AnonRateThrottle', # 未登录用户
'rest_framework.throttling.UserRateThrottle' #登录用户
),
'DEFAULT_THROTTLE_RATES': {
'anon': '100/day', # 未登录用户 每天100次
'user': '1000/day' # 登录用户每天1000次
}
}
DEFAULT_THROTTLE_RATES 可以使用 second, minute, 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'
}
}
 
————————————————
版权声明:本文为CSDN博主「以梦为马越骑越傻」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42670402/java/article/details/86608158

posted on 2020-04-02 17:37  ExplorerMan  阅读(366)  评论(0编辑  收藏  举报

导航