DRF分页器
DRF分頁(yè)器
1.普通分頁(yè)器
? 主要的四個(gè)屬性
#一頁(yè)返回的數(shù)據(jù)數(shù),必傳 paginate.page_size = 2 #自定義一頁(yè)要返回的數(shù)據(jù)數(shù),以get的形式傳,key為size paginate.page_size_query_param = 'size' #自定義頁(yè)碼數(shù)的名字為p,默認(rèn)為page paginate.page_query_param = 'p' #一頁(yè)顯示最大的數(shù)據(jù)數(shù) paginate.max_page_size = 3? 序列化數(shù)據(jù)的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖行數(shù)中的使用
from rest_framework.pagination import PageNumberPagination class Books(ModelViewSet,APIView):def get_all_book(self,request,*args,**kwargs):books = models.Book.objects.all()paginate = PageNumberPagination()paginate.page_size = 2paginate.page_size_query_param = 'size'paginate.page_query_param = 'p'paginate.max_page_size = 3paginate_list = paginate.paginate_queryset(books,request,self)books_res = BookXLH(instance=paginate_list,many=True)response = {'msg':books_res.data}return Response(response)? 路由
url(r'^books/$',views.Books.as_view({'get':'get_all_book'}))2.偏移分頁(yè)器
? 主要的屬性
#每頁(yè)顯示的數(shù)據(jù)條數(shù) pagination.default_limit = 4 #要偏移的標(biāo)桿,在前端以get的形式傳,key為offset('可修改') pagination.offset_query_param = 'offset' #偏移量,,在前端以get的形式傳,key為limit('可修改') pagination.limit_query_param = 'limit' #一頁(yè)最大的顯示條數(shù) pagination.max_limit = 2? 序列化的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖函數(shù)中的使用
from rest_framework.pagination import LimitOffsetPagination class Books(ModelViewSet,APIView):def get_all_book(self,request,*args,**kwargs):books = models.Book.objects.all().order_by('nid')pagination = LimitOffsetPagination()pagination.default_limit = 4pagination.offset_query_param = 'offset'pagination.limit_query_param = 'limit'pagination.max_limit = 2paginate_list = pagination.paginate_queryset(books,request,self)books_res = BookXLH(instance=paginate_list,many=True)response = {'msg':books_res.data}return Response(response)3.加密的分頁(yè)
? 主要的屬性
#按nid排序 page.ordering = 'nid' #查詢的key值 cursor_query_param = 'cursor' #每頁(yè)顯示多少條 page_size = api_settings.PAGE_SIZE? 序列化的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖函數(shù)中的使用
from rest_framework.pagination import CursorPagination class Books(ModelViewSet,APIView):def get_all_book(self,request,*args,**kwargs):books = models.Book.objects.all()paginate = CursorPagination()paginate.page_size=2paginate.ordering = 'nid'paginate_list = paginate.paginate_queryset(books,request,self)books_res = BookXLH(instance=paginate_list,many=True)response = {'msg':books_res.data}return paginate.get_paginated_response(books_res.data)轉(zhuǎn)載于:https://www.cnblogs.com/jianhaozhou/p/10138975.html
總結(jié)
- 上一篇: 基于 Kubernetes 的 FaaS
- 下一篇: 简单介绍Kubernetes