DRF之权限和频率限制 (2)

限制用户对于每个视图的访问频率,使用IP限制

# 1、写一个类,继承SimpleRateThrottle,重写 get_cache_key # app01_auth.py from rest_framework.throttling import SimpleRateThrottle class App01_Throttle(SimpleRateThrottle): scope = 'luffy' def get_cache_key(self, request, view): # 返回什么源码中的key就是什么 return request.META.get('REMOTE_ADDR') # 2、全局配置频率次数 settings.py REST_FRAMEWORK = { 'DEFAULT_THROTTLE_RATES': { 'luffy': '5/m' # key要根据类中的scope对应 }, } # 3、局部使用 views.py from rest_framework.views import APIView from app01.app01_auth import App01_Throttle class TestView(APIView): throttle_classes = [App01_Throttle] # 局部使用配置 def get(self, request): return Response('IP限制每分钟访问5次') # 全局使用需要在settings.py配置 REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'app01.app01_auth.App01_Throttle', # 全局及配置 ), 'DEFAULT_THROTTLE_RATES': { 'luffy': '5/m' # key要根据类中的scope对应 }, }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwydww.html