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) 编辑 收藏 举报