排序
全局配置---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]
如果局部设置不生效,需要在配置全局限流