码迷,mamicode.com
首页 > 其他好文 > 详细

django限流全局和单个视图

时间:2021-01-30 11:42:33      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:class   img   nta   listview   一个   ram   www   list   django   

全局匿名和用户节流:

技术图片

 

 

    # 限流
    ‘DEFAULT_THROTTLE_CLASSES‘: [
        ‘rest_framework.throttling.AnonRateThrottle‘,
        ‘rest_framework.throttling.UserRateThrottle‘
    ],
    ‘DEFAULT_THROTTLE_RATES‘: {
        ‘anon‘: ‘300/day‘,  # 匿名用户
        ‘user‘: ‘5000/day‘  # 用户
    }

  

# 单个视图限流:

ScopedRateThrottle

ScopedRateThrottle类可用于限制访问API的特定部分。仅当所访问的视图包含.throttle_scope属性时,才会应用此限制然后,通过将请求的“范围”与唯一的用户ID或IP地址串联起来,即可形成唯一的限制键。

允许的请求速率由DEFAULT_THROTTLE_RATES设置使用请求“范围”中的键确定

例如,给定以下视图...

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‘
    }
}

用户每天对一个请求的请求ContactListViewContactDetailView将被限制为总共1000个请求。用户对的请求UploadView将被限制为每天20个请求。

官方文档:

https://www.django-rest-framework.org/api-guide/throttling/

django限流全局和单个视图

标签:class   img   nta   listview   一个   ram   www   list   django   

原文地址:https://www.cnblogs.com/SunshineKimi/p/14343990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!