DRF-频率限制
DRF之权限和频率限制
权限可以限制用户对视图的访问和对具体数据对象的访问。
- 在执行视图的dispatch方法前,会先进行视图访问权限的判断
- 在通过get_object获取对象时,会进行模型对象访问权限的判断
源码分析
核心源码——>APIView——>dispatch——>initial——>self.check_permissions(request)
写一个类,继承BasePermission,重写has_permission,如果权限通过,就返回True,不通过就返回False。
如何使用:
内置权限
内置权限类
如何使用
二、频率
可以用来减轻服务器压力,对接口访问的频率进行限制
内置频率限制
由于大部分需求使用内置的频率限制就已经可以了,所以主要看看内置的频率限制
限制未登录用户:AnonRateThrottle
也就是限制所有匿名未认证用户,使用IP区分用户。anon
设置频次
限制登录用户:UserRateThrottle
需求:未登录用户1分钟访问5次,登录用户一分钟访问10次
对认证用户限制,使用User id 来区分,user
设置频次
但是这个有局限性,它只能是auth_user表,admin这套系统才能使用
IP频率限制:SimpledRateThrottle
限制用户对于每个视图的访问频率,使用IP限制