分页器 版本控制

分页器

三种分页:

第一种:

类似于原来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) 



原文地址:https://www.cnblogs.com/ouyang99-/p/10160383.html