日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DRF分页器

發(fā)布時(shí)間:2025/3/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DRF分页器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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é)

以上是生活随笔為你收集整理的DRF分页器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。