zoukankan      html  css  js  c++  java
  • 分页器 版本控制

    分页器

    三种分页:

    第一种:

    类似于原来django中的分页
    -page_size = api_settings.PAGE_SIZE
    -page_query_param = 'page'
    -page_size_query_param
    -max_page_size




    第二种:偏移分页

    #每页显示的条数
    default_limit = api_settings.PAGE_SIZE
    #标杆值
    offset_query_param = 'offset'
    #往后偏移多少
    limit_query_param = 'limit'
    #每页显示最大的条数    
    max_limit = None



    ****要取的条数,如果超过了,还剩多少,就显示多少

    第三种:加密分页(查询速度快)

    #按nid排序
    page.ordering = 'nid'
    #查询的key值
    cursor_query_param = 'cursor' 
    #每页显示多少条
    page_size = api_settings.PAGE_SIZE



    使用:

    -生成一个对象(普通,偏移,加密)
    --***重点:可以修改对象的属性
    -ret=对象.paginate_queryset(book_list, request, self)
    
    -丢到序列化类中,完成序列化,
    -最后返回

    版本控制


    掌握的:URLPathVersioning


    -在setting中配置:

    'VERSION_PARAM':'version',
    'DEFAULT_VERSION':'v1',
    'ALLOWED_VERSIONS': ['v1', 'v2'],

    -局部使用:

    versioning_class = URLPathVersioning

    -全局使用:

    'DEFAULT_VERSIONING_CLASS':'rest_framework.versioning.URLPathVersioning',

    -路由配置:

    url(r'^(?P<version>[v1|v2|v3]+)/books/$', views.Book.as_view({'get':'get_all'}),name='ttt'),


    -在视图类中的request对象中,就可以取出版本号
    -反向解析:

    url2=request.versioning_scheme.reverse('ttt',request=request) 



  • 相关阅读:
    纪伯伦:我曾七次鄙视我的灵魂
    字典和集合
    元组
    列表
    字符串
    数值类型
    内置函数了解一下
    了解Python
    centos7安装mysql数据库
    xenserver 上传centos6.8镜像
  • 原文地址:https://www.cnblogs.com/ouyang99-/p/10160383.html
Copyright © 2011-2022 走看看