国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django rest framework實現分頁的示例

2020-02-23 00:13:38
字體:
來源:轉載
供稿:網友

第一種分頁PageNumberPagination

基本使用

(1)urls.py

urlpatterns = [  re_path('(?P<version>[v1|v2]+)/page1/', Pager1View.as_view(),)  #分頁1]

(2)api/utils/serializers/pager.py

# api/utils/serializsers/pager.pyfrom rest_framework import serializersfrom api import modelsclass PagerSerialiser(serializers.ModelSerializer):  class Meta:    model = models.Role    fields = "__all__"

(3)views.py

from api.utils.serializsers.pager import PagerSerialiserfrom rest_framework.response import Responsefrom rest_framework.pagination import PageNumberPaginationclass Pager1View(APIView):  def get(self,request,*args,**kwargs):    #獲取所有數據    roles = models.Role.objects.all()    #創建分頁對象    pg = PageNumberPagination()    #獲取分頁的數據    page_roles = pg.paginate_queryset(queryset=roles,request=request,view=self)    #對數據進行序列化    ser = PagerSerialiser(instance=page_roles,many=True)    return Response(ser.data)

(4)settings配置

REST_FRAMEWORK = {  #分頁  "PAGE_SIZE":2  #每頁顯示多少個}

自定義分頁類

#自定義分頁類class MyPageNumberPagination(PageNumberPagination):  #每頁顯示多少個  page_size = 3  #默認每頁顯示3個,可以通過傳入pager1/?page=2&size=4,改變默認每頁顯示的個數  page_size_query_param = "size"  #最大頁數不超過10  max_page_size = 10  #獲取頁碼數的  page_query_param = "page"class Pager1View(APIView):  def get(self,request,*args,**kwargs):    #獲取所有數據    roles = models.Role.objects.all()    #創建分頁對象,這里是自定義的MyPageNumberPagination    pg = MyPageNumberPagination()    #獲取分頁的數據    page_roles = pg.paginate_queryset(queryset=roles,request=request,view=self)    #對數據進行序列化    ser = PagerSerialiser(instance=page_roles,many=True)    return Response(ser.data)

第二種分頁 LimitOffsetPagination

自定義

#自定義分頁類2class MyLimitOffsetPagination(LimitOffsetPagination):  #默認顯示的個數  default_limit = 2  #當前的位置  offset_query_param = "offset"  #通過limit改變默認顯示的個數  limit_query_param = "limit"  #一頁最多顯示的個數  max_limit = 10class Pager1View(APIView):  def get(self,request,*args,**kwargs):    #獲取所有數據    roles = models.Role.objects.all()    #創建分頁對象    pg = MyLimitOffsetPagination()    #獲取分頁的數據    page_roles = pg.paginate_queryset(queryset=roles,request=request,view=self)    #對數據進行序列化    ser = PagerSerialiser(instance=page_roles,many=True)    return Response(ser.data)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹江口市| 阿荣旗| 七台河市| 玛沁县| 西乌珠穆沁旗| 清河县| 泽库县| 万源市| 岳西县| 莲花县| 合肥市| 普格县| 定西市| 安化县| 嘉黎县| 聂荣县| 桂东县| 邛崃市| 驻马店市| 丹寨县| 建昌县| 江山市| 灵寿县| 昌平区| 广汉市| 蒙阴县| 仁怀市| 吴堡县| 馆陶县| 缙云县| 崇明县| 凤阳县| 西乌珠穆沁旗| 循化| 莱州市| 嵊泗县| 新龙县| 桑植县| 苗栗市| 鄂托克前旗| 元谋县|