zoukankan      html  css  js  c++  java
  • RestFramework之注册器、响应器与分页器

    一、注册器的说明与使用

      在我们编写url时经常会因请求方式不同,而重复编写某条url,而rest_framework中的注册器帮我节省了很多代码

      下面介绍一下如何使用

    # 利用注册器来实现路由分发
    from rest_framework import routers          # 导入
    router = routers.DefaultRouter()             # 实例化对象
    router.register('book',views.BookView)      # 注册

      还需要在urlpatterns中加入

    re_path('^',include(router.urls))

      还有更多功能如直接查看数据格式等等

    二、响应器的使用

      响应器的作用就是让浏览器不在返回django rest_framework做的那个网页,而是直接返回数据

      

      使用方法:

        1.首先在views导入  

    from rest_framework.renderers import JSONRenderer  # 响应器

        2.在视图类中设置,指定返回类

    render_classes = [JsonRender]

      全都配置好之后再去访问浏览器时就不会在返回页面了

      

    三、分页器的使用

      分页器的使用:

            - 导入模块
                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)

      当我们用到视图类中继承ModelViewSet时需要自己编写分页类

      1.首先需要导入模块

    from rest_framework.pagination import PageNumberPagination

      2.编写分页器

    class ThePagination(PageNumberPagination):
        page_size = 2                            # 每次获取的数量
        page_query_param = 'page'               # url上的page参数
        page_size_query_param = 'size'          # 临时要取数据的时候,可以在url上加的参数size
        max_page_size = 4                       # 限制最多可以获取数据的多少

      3.最后还要在视图类中加入

    pagination_class = ThePagination    # 分页器

      测试一下:

      

  • 相关阅读:
    PowerBuilder 前景(转贴)
    利用Lucene.net搭建站内搜索(3)创建索引
    执行力差的五大原因
    js关于document和window对象_javascript教程
    HTML内部链接
    深入理解 __doPostBack (转帖)
    利用Lucene.net搭建站内搜索(4)数据检索
    a href=#与 a href=javascript:void(0) 的区别 打开新窗口链接的几种办法
    Javascript进阶 (转帖)
    windows通过VNC连接linux (Fedora 12)
  • 原文地址:https://www.cnblogs.com/qq631243523/p/10102848.html
Copyright © 2011-2022 走看看