国产探花免费观看_亚洲丰满少妇自慰呻吟_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)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 津市市| 武宣县| 张掖市| 香港| 临湘市| 开远市| 三都| 莱阳市| 怀集县| 乌审旗| 新野县| 江永县| 德格县| 且末县| 绥德县| 比如县| 隆子县| 灵山县| 高密市| 离岛区| 芮城县| 萝北县| 紫阳县| 上杭县| 扎囊县| 策勒县| 宜黄县| 菏泽市| 古蔺县| 乌鲁木齐市| 洛宁县| 昭觉县| 兴业县| 陆河县| 长寿区| 新巴尔虎左旗| 上饶市| 苍山县| 金川县| 屏边| 诏安县|