分页器和版本控制的总结使用

昨日回顾:
    分页器:
        普通分页    
            # 普通分页
            from rest_framework.pagination import PageNumberPagination
            -每页的大小(默认)
            -查询的时候,按哪个字段查
            -当前页的每页大小(用户指定的)
            -每页显示最大条数
            -写一个类继承分页类,重写属性
            -使用的时候:
                -实例化出一个分页器对象
                -返回值=对象.paginate_queryset(book_list, request, self)
                -序列化(返回值)
                -return序列化之后的值
        偏移分页
            # 偏移分页
            from rest_framework.pagination import LimitOffsetPagination
            -每页的大小:default_limit
            -标杆值offset
            -偏移值limit
            -最大偏移的数:max_limit
        加密分页(速度快)
            # 加密分页
            from rest_framework.pagination import CursorPagination
            -写一个类继承分页类,重写属性
            -cursor_query_param:以该字段配置的值查询
            -ordering 按哪个字段排序
    版本控制:
        -URLPathVersioning
            -版本直接放在路由中,配置路由
                url(r'^(?P<version>[v1|v2|v3]+)/books/$', views.Book.as_view({'get':'get_all'}),name='ttt'),
            -在setting中配置
                'VERSION_PARAM':'version',   #根据哪个键取查询
                'DEFAULT_VERSION':'v1',      #默认的版本号
                'ALLOWED_VERSIONS': ['v1', 'v2'],   #允许的版本号
            -在视图类中:局部使用
                versioning_class = URLPathVersioning
                -在request对象中,可以取出版本request.version
            -反向解析
                -因为request对象能取出版本号,内部自动填入
                -url2=request.versioning_scheme.reverse('ttt',request=request)
                -如果是路由有别的有名/无名分组,需要手动传过去
        -QueryParameterVersioning
原文地址:https://www.cnblogs.com/cao123/p/10146513.html