一.url注册器的使用
1.1导入模块
from django.urls import re_path, include from .serializer import views from rest_framework import routers
1.2生成一个注册器实例对象
router = routers.DefaultRouter()
1.3将需要自动生成url的接口注册
router.register(r"books", views.BookView)
1.4开始自动生成url
urlpatterns = [ re_path('^', include(router.urls)), ]
总结
本质上为了方便在引用midelViewset 时在urls 上注入大量繁琐的步骤,保持代码简洁
二.响应器组件
2.1 导入模块
from rest_framework.renderers import JsonRender
2.2 指定返回类
class BookView(APIView): render_classes = [JsonRender]
三.分页器组件
3.1分页器组件使用方式介绍
- 导入模块 from rest_framework.pagination import PageNumberPagination - 获取数据 books = Book.objects.all() - 创建一个分页器对象 paginater = PageNumberPagination() - 开始分页 paged_books = paginater.paginate_queryset(books, request) - 开始序列化 serialized_books = BookSerializer(paged_books, many=True) - 返回数据 return Response(serialized_books.data)
3.2分页器组件局部实现
- 导入模块 from rest_framework.pagination import PageNumberPagination - 在自定义一个分页类并继承PageNumberPagination --class MyPageNumberPagination(PageNumberPagination): page_size = 2 每页显示数据 page_query_param = "page_num" 通过?page_num= 来分页 page_size_query_param = "size" max_page_size = 3 最大显示条目 -在实例化对象时候引用 pagination_class class BookView(ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer pagination_class = MyPageNumberPagination
3.3 总结
本质上通过分页来传递数据减小服务端压力