首页 > 其他分享 >频率使用

频率使用

时间:2022-12-10 11:34:43浏览次数:36  
标签:THROTTLE 登录 DEFAULT 用户 访问 classes 频率 使用

频率

目录

可以对接口访问的频次进行限制,以减轻服务器压力
一般用于付费购买次数,投票等场景使用

1、内置的频率限制

未登录用户访问频次

全局使用:限制未登录用户1分钟访问五次

#settings.py
REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': ['rest_framework.throttling.AnonRateThrottle'],
    'DEFAULT_THROTTLE_RATES': {
       
        'anon': '5/m',
    },
}

# 演示全局未登录用户访问频率
class Test4View(APIView):
    authentication_classes = []
    permission_classes = []

    def get(self, request, *args, **kwargs):
        return Response('我是未登录用户')

访问5次后就会出现下图所示:

image-20221210085900164

内置使用:局部未登录用户的访问频次

from rest_framework.throttling import AnonRateThrottle


# 演示局部未登录用户的访问频次
class Test5View(APIView):
    authentication_classes = []
    permission_classes = []
    throttle_classes = [AnonRateThrottle]

    def get(self, request, *args, **kwargs):
        return Response('我是未登录用户')

内置使用要注释掉全局配置中的下面这句代码

REST_FRAMEWORK = {
    # 'DEFAULT_THROTTLE_CLASSES': ['rest_framework.throttling.AnonRateThrottle'],
  
}

登录用户访问频次

全局使用

#settings.py

REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': [    
    'rest_framework.throttling.UserRateThrottle'
    ],
    'DEFAULT_THROTTLE_RATES': {
        'user': '10/m',
    },
}

未登录用户一分钟访问5次,登录用户一分钟访问10次

REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': [
        'rest_framework.throttling.AnonRateThrottle',
        'rest_framework.throttling.UserRateThrottle'
    ],
    'DEFAULT_THROTTLE_RATES': {
        'user': '10/m',
        'anon': '5/m',
    },
}

局部配置,
	再视图类中配一个就行,禁用的话加中括号就行
# 未登录用户一分钟访问5次,登录用户一分钟访问10次
class Test6View(APIView):
    authentication_classes = [SessionAuthentication]
    # permission_classes = []
    # throttle_classes = [AnonRateThrottle]

    def get(self, request, *args, **kwargs):
        return Response('我是未登录用户')

标签:THROTTLE,登录,DEFAULT,用户,访问,classes,频率,使用
From: https://www.cnblogs.com/zaosong/p/16971298.html

相关文章

  • 过滤组件的使用
    过滤Filtering对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-filter扩展来增强支持pipinstalldjango-filter在配置文件中添加过滤后端的设置INSTALL......
  • 排序组件的使用
    排序在类视图中设置filter_backends属性,使用rest_framework.filters.OrderingFilter过滤器,DRF会在请求的查询字符串参数中检查是否包含了ordering参数,如果包含了ordering......
  • 方法引用基础使用
    packagecom.Lucky.Function;importjava.util.Arrays;importjava.util.Comparator;importjava.util.stream.Collector;/*方法引用:将已经存在的方法进行引用......
  • Velero 系列文章(二):使用 Helm 安装 Velero
    概述本文是通过Helm3来安装Velero,只做最基本的安装。并计划将YAML(只备份YAML,不备份Volume)备份到腾讯云的COS(兼容S3,所以可以通过AWSS3插件来实现)需要......
  • PostgreSQL 使用数组类型及mybatis操作数组类型
    为啥要用到数组类型呢?因为​​ES支持数组类型​​,为了迁移遍历,所以也支持数组类型。selectdocid,authorsfromsearch_doc_new_icwhereauthors@>'{"惠普"}'limit1......
  • Stream流之其他使用
    数组:packagecom.Lucky;importjava.util.*;/*数组的Stream流:使用Arrays工具类*/publicclassStreamArray{publicstaticvoidmain(String[]args)......
  • Qt QScroller::grabGesture(ui->scrollArea, QScroller::TouchGesture),之后滚动条无法
    RT。问题发生原因因为设置了touchGesture,而scrollArea的滚动条是包含在scrollArea里面的,用手指滑动滚动条的同时,也触发了touchGesture,两个冲突了。 解决思路:重新n......
  • Stream【数据流】的基本使用
    Stream:数据流中间方法:filter【过滤】limit【获取前几个数据】skip【跳过前几个数据】distinct【去重】concat【合并】map【......
  • 2022 ximalaya download 喜马拉雅音频批量下载器使用教程
    教大家怎么使用ximalayadownload这款软件下载喜马拉雅上的音乐批量下载到自己的电脑上。使用方法很简单,首先下载这款软件。ximalaydownload音乐批量下载器这款软件的强......
  • for循环的使用与学习
    在Linux中使用BashFor循环你会嘛!原创 入门小站 入门小站 2022-12-0921:50 发表于湖北收录于合集#Linux645个入门小站分享运维技巧及10k+Stars的开......