• DRF之频率组件


    几种drf的频率组件使用总结

    一 

     - 定义一个频率类

    class RateThrottle():
        def allow_request(request, self):
            if 没有超过限制(伪代码):
                return True
            else:
                return False
        def wait(self): # 必写
            return 10

    - 指定频率类

    class BookView(APIView):
        throttle_classes = [RateThrottle]

    二  控制用户访问频率 (局部)

     - 导入

    from rest_framework.thortting import SimpleRateThrottle

     - 定义并继承simpleRateThrottle

    class RateThrottle(SimpleRateThrottle):
        # 指定访问频率
        rate = '5/m'
                        
        # 指定通过什么方式来区分用户
        def get_cache_key(self, request, view):
            return self.get_ident(request)

     - 同样要指定频率类

    class BookView(APIView):
        throttle_classes = [RateThrottle]

    三  控制用户访问频率(全局)

    - 继承类

    class RateThrottle(SimpleRateThrottle):
        # 指定访问频率
        scope = 'visit_rate'
                        
        # 指定通过什么方式来区分用户
        def get_cache_key(self, request, view):
            return self.get_ident(request)

    - 在settings里面指定频率类和访问频率

    - 在settings里面指定频率类和访问频率
                    REST_FRAMEWORK = {
                        "DEFAULT_THROTTLE_CLASSES": ('serializer.utils.app_throttles.RateThrottle',), # 路径
                        "DEFAULT_THROTTLE_RATES": {
                            "visit_rate": "5/m"  # 对应继承类
                        }
                    }
  • 相关阅读:
    头像点击预览代码
    知识总结和记录——Bootstrap
    知识总结和记录——HTML
    知识总结和记录——面向对象
    知识总结和记录——递归
    知识总结和记录——迭代器和生成器
    知识总结和记录——内置函数
    zap 学习笔记
    2020年总结
    学习笔记_Linux常用指令
  • 原文地址:https://www.cnblogs.com/lzmdbk/p/10103028.html
Copyright © 2020-2023  润新知