16.1 排序
16.1.1 Ordering-Filter的使用
概念:将获取到的字段进行排序
导包:
from rest_framework.filters import OrderingFilter
代码:
全局过滤:在settings文件下
REST_FRAMEWORK = {
# 过滤全区
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend']
}
指定排序:
在vinews文件下
class StudentView2(ListAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializers2
# 1.指定使用的过滤工具
filter_backends = [SearchFilter,OrderingFilter]
# 2.指定过滤字段
search_fields=['province__id','province__pro_name']
#3. 指定程序的字段
ordering_fields=['score','province']
如何执行效果:
根据成绩排序:
16.2 限流
16.2.1全局限流
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
# 可以使用 second, minute, hour 或day来指明周期
'anon': '3/minute',
}
}
16.2.2指定限流
导包:
from rest_framework.throttling import AnonRateThrottle
实现匿名的限流:
class StudentView2(ListAPIView):
queryset = Student.objects.all()
serializer_class = StudentSerializers2
# 局部限流
throttle_classes = [AnonRateThrottle]