Django的排序、限流

排序

全局配置---settings文件里

REST_FRAMEWORK = {
    # "键":"值"
    #   配置全局过滤引擎
    'DEFAULT_FILTER_BACKENDS': [
        'rest_framework.filters.OrderingFilter'
    ]
}
class CarsModelViewSet(ModelViewSet):
    queryset = Cars.objects.all()
    serializer_class = CarsSerializers

    # 全局配置过滤信息 在视图添加过滤字段
    # 过滤字段有2种方式 一种列表形式 一种元组形式
    # 如果过滤的字段有多个 那么字段之间是并且的关系
    filter_fields = ["cname"]

局部配置---views.py文件里

from rest_framework.filters import OrderingFilter
from rest_framework.viewsets import ModelViewSet

class CarsModelViewSet(ModelViewSet):
    queryset = Cars.objects.all()
    serializer_class = CarsSerializers

    # 指明后端过滤方式(排序 模糊查询 精准查询)
    filter_backends = [OrderingFilter]
    # 指明排序字段
    ordering_fields = ["id","cname"]

限流 

 全局配置---settings文件里

REST_FRAMEWORK = {
    # "键":"值"
    # 全局配置限流信息 throttle限制
    'DEFAULT_THROTTLE_CLASSES': (
        # 限制所有匿名未认证用户,使用IP区分用户
        'rest_framework.throttling.AnonRateThrottle',
     ),
    # 配置限制的频次 rate
    'DEFAULT_THROTTLE_RATES': {
        # 可以使用 second, minute, hour 或day来指明周期
        # 匿名用户  一分钟限制3次
        'anon': '3/minute',  # 匿名用户
        # 'user': '5/minute'    # 注册的用户
    }
}

 局部配置---views.py文件里

# 直接导入到限流的匿名用户
from rest_framework.throttling import AnonRateThrottle

class CarsModelViewSet(ModelViewSet):
    queryset = Cars.objects.all()
    serializer_class = CarsSerializers
  
    # 设置限流用户
    throttle_classes = [AnonRateThrottle]

如果局部设置不生效,需要在配置全局限流

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值