一、DRF的注册器
#导入模块 from rest_framework import routers #实例化一个router对象 router = routers.DefaultRouter() #将需要自动生成url的接口注册到router中 router.register("bookssss",views.BooksssView) #生成url urlpatterns = [ re_path(r'^', include('router.urls')), ]
二、响应器
from rest_framework.renderers import JSONRenderer class BookView(ModelViewSet): renderer_classes = [JSONRenderer] throttle_classes = [RateThrottle] queryset = Book.objects.all() serializer_class = BookSerializer
浏览器再次访问,接收到的就是普通的json格式数据,而不是经过DRF格式化后的数据
三、分页器
#导入模块 from rest_framework.pagination import PageNumberPagination #获取数据 books = Book.objects.all() #创建分页器 paginater = app_paginates.MyPagination() #开始分页 paged_books = paginater.paginate_queryset(books, request) #将分页后的数据进行序列化 serialized_data = BookSerializer1(paged_books, many=True) #返回数据 return Response(serialized_data.data)
- page_size:用来控制每页显示多少条数据(全局参数名为PAGE_SIZE);
- page_query_param:用来提供直接访问某页的数据;
- page_size_query_param:临时调整当前显示多少条数据
- max_page_size:控制page_size_query_param参数能调整的最大条数
自定义分页
class MyPagination(PageNumberPagination): page_size = 2 page_query_param = 'p' page_size_query_param = 'size' max_page_size = 5 class BooksssView(ModelViewSet): pagination_class = MyPagination queryset = Book.objects.all() serializer_class = BookSerializer1