限流Throttling
Posted freedom0923
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限流Throttling相关的知识,希望对你有一定的参考价值。
可选限流类
1) AnonRateThrottle
限制所有匿名未认证用户,使用IP区分用户。
使用DEFAULT_THROTTLE_RATES[‘anon‘]
来设置频次
2)UserRateThrottle
限制认证用户,使用User id 来区分。
使用DEFAULT_THROTTLE_RATES[‘user‘]
来设置频次
3)ScopedRateThrottle (待定...)
限制用户对于每个视图的访问频次,使用ip或user id,先找的用户id,没有设置用户id的话就会使用ip地址。
可以在配置文件中
REST_FRAMEWORK = { ‘DEFAULT_THROTTLE_CLASSES‘: ( ), ‘DEFAULT_THROTTLE_RATES‘: { ‘anon‘: ‘100/day‘, ‘user‘: ‘1000/day‘ } }
DEFAULT_THROTTLE_RATES 可以使用 second
, minute
, hour
或day
来指明周期。
也可以在具体视图中通过throttle_classess属性来配置,但是要注掉settings里的‘DEFAULT_THROTTLE_CLASSES‘,如
`from rest_framework.throttling import ScopedRateThrottle
from rest_framework.views import APIView
class ExampleView(APIView):
throttle_classes = [ScopedRateThrottle ,]
throttle_scope = ‘anon‘
...`
以上是关于限流Throttling的主要内容,如果未能解决你的问题,请参考以下文章
drf 其他功能组件 - 限流-过滤-排序-分页-异常处理-生成接口文档-Xadmin
python Django Rest_Framework框架 认证权限限流功能组件详解(图文并茂版)