DRF分页器
DRF分頁器
1.普通分頁器
? 主要的四個屬性
#一頁返回的數據數,必傳 paginate.page_size = 2 #自定義一頁要返回的數據數,以get的形式傳,key為size paginate.page_size_query_param = 'size' #自定義頁碼數的名字為p,默認為page paginate.page_query_param = 'p' #一頁顯示最大的數據數 paginate.max_page_size = 3? 序列化數據的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖行數中的使用
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.偏移分頁器
? 主要的屬性
#每頁顯示的數據條數 pagination.default_limit = 4 #要偏移的標桿,在前端以get的形式傳,key為offset('可修改') pagination.offset_query_param = 'offset' #偏移量,,在前端以get的形式傳,key為limit('可修改') pagination.limit_query_param = 'limit' #一頁最大的顯示條數 pagination.max_limit = 2? 序列化的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖函數中的使用
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.加密的分頁
? 主要的屬性
#按nid排序 page.ordering = 'nid' #查詢的key值 cursor_query_param = 'cursor' #每頁顯示多少條 page_size = api_settings.PAGE_SIZE? 序列化的類
class BookXLH(serializers.ModelSerializer):class Meta:model = models.Bookfields = '__all__'? 在視圖函數中的使用
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)轉載于:https://www.cnblogs.com/jianhaozhou/p/10138975.html
總結
- 上一篇: 基于 Kubernetes 的 FaaS
- 下一篇: 简单介绍Kubernetes