zoukankan      html  css  js  c++  java
  • django url注册器组件, 响应器组件, 分页器组件

    一.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 总结

    本质上通过分页来传递数据减小服务端压力

  • 相关阅读:
    k8s二进制部署
    k8s二进制部署
    k8s二进制部署
    k8s二进制部署
    微信小程序 学习笔记5 使用WeUI组件弹出对话框.
    微信小程序 学习笔记4 小程序API调用 wx.login
    微信小程序 学习笔记3 页面跳转
    微信小程序 学习笔记2 button
    微信小程序 学习笔记1 初识
    Python pyautogui 模拟鼠标键盘
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/10102653.html
Copyright © 2011-2022 走看看