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限制

 

 

 

 

 

posted @ 2022-12-01 18:21  FFLYY  阅读(25)  评论(0编辑  收藏  举报