分页器
三种分页:
第一种:
类似于原来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)