• 95 分页器 解析器 渲染器


    主要内容:

    1  分页器:   项目在第day91 天的文件夹里:https://www.cnblogs.com/GGGG-XXXX/articles/9867882.html

      a : 分页 DRF提供三种分页方式

        -- ///////?page=1&size=5
        -- ///////?limit=2&offset=3  每页显示两条数据, 从第几个开始
        -- ///////?加密的游标 只有上一页下一下 . 游标只有上一页下一页, 游标的值是加密的, 不暴露数据库的信息

      b : 分页器的使用:

        1 自定义一个分页器类, 配置必要的信息:

    from rest_framework import pagination
    class Mypagination(pagination.PageNumberPagination):
        # 每页显示两条数据
        page_size = 2
        # 表示第几页
        page_query_param = "page"
        page_size_query_param = "size"
        # 每一页显示的最大条数
        max_page_size = 3
    

        2 在视图中的使用;

    class pageBookView(APIView):
        def get(self, request):
            all_book = Book.objects.all()
            # 先实例化分页器对象
             page_obj = LimitOffsetPaginator()
            # 用自己的分页器调用分页方法,进行分页
            page_data = page_obj.paginate_queryset(all_book, request)
            # 获取分页好的数据
            ser_obj = BookSerializer(page_data, many=True)
            # return Response(ser_obj.data)
            # 给响应添加上一页下一页的连接
            return page_obj.get_paginated_response(ser_obj.data)
    

    2 解析器:https://www.cnblogs.com/GGGG-XXXX/articles/9893090.html

      -- Content-Type 我给你的是什么数据类型
        -- application/x-www-form-urlencoded 表单数据
        -- multipart/form-data 文件的
        -- application/json
          -- request.body
      -- Accept 我能解析的是什么数据类型
      -- Django的解析器

        在request.post中调用
          request.POST Form表单的数据
          request.FILES 文件的数据
      -- DRF解析器

        在request.data 中调用
          -- 拿前端传过来的Content-Type 跟我自己所有的解析器进行匹配
          -- 匹配上了返回这个解析器
          -- 并且调用这个解析器的parse方法 进行解析数据
      -- DRF默认配置的解析器: 有三个:

        from rest_framework import parser

     3 渲染器

      a : 默认的两个渲染器:

         'DEFAULT_RENDERER_CLASSES': (
            'rest_framework.renderers.JSONRenderer',                一个是json提供的
            'rest_framework.renderers.BrowsableAPIRenderer',  一个是浏览器提供的
          ),

      b : 在浏览器上展示的DRF的那个测试页面就是通过浏览器的渲染器做到的, 当然我们也可以通过json数据类型.

        

        

  • 相关阅读:
    二维数组的查找问题
    将字符串编码成数值,求数值最大和问题(今日头条笔试题)
    链表的倒序打印
    求方程的近似解
    多边形构成问题(今日头条笔试题)
    各种语言数据类型大小
    luoguP1551 亲戚
    Codeforces 764 A-B
    Mixing Chemicals
    Day 8 of JZJX
  • 原文地址:https://www.cnblogs.com/gyh412724/p/10017546.html
Copyright © 2020-2023  润新知