分页器
三种分页:
第一种:
类似于原来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[v1|v2|v3]+)/books/$', views.Book.as_view({ 'get':'get_all'}),name='ttt'),
-在视图类中的request对象中,就可以取出版本号 -反向解析:
url2=request.versioning_scheme.reverse('ttt',request=request)