码迷,mamicode.com
首页 > 其他好文 > 详细

REST framwork之分页器,路由器,响应器

时间:2018-09-06 00:11:31      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:不同   最大   ati   number   ima   books   let   upd   inf   

一 REST framwork分页器:

from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination

class PNPagination(PageNumberPagination):
        page_size = 1    
        page_query_param = page
        page_size_query_param = "size"
        max_page_size = 5

class BookViewSet(viewsets.ModelViewSet):

    queryset = Book.objects.all()
    serializer_class = BookSerializers
    def list(self,request,*args,**kwargs):

        book_list=Book.objects.all()
        pp=LimitOffsetPagination()
        pager_books=pp.paginate_queryset(queryset=book_list,request=request,view=self)
        print(pager_books)
        bs=BookSerializers(pager_books,many=True)

        #return Response(bs.data)
        return pp.get_paginated_response(bs.data)

 

二 路由器:

在view视图中我们已经将代码进行最大化的简化,但是有一个问题就是我们的urls 中不得不进行传参,以区别不同的GET请求,分别为:Retrieve与List

    url(r^authors/$, views.AuthorModelView.as_view({"get": "list", "post": "create"})),
    url(r^authors/(?P<pk>\d+)/$,views.AuthorModelView.as_view({"get": "retrieve", "put": "update", "delete": "destroy"})),

 

使用了REST framwork路由器:

技术分享图片

 

三 响应器:

技术分享图片

 

REST framwork之分页器,路由器,响应器

标签:不同   最大   ati   number   ima   books   let   upd   inf   

原文地址:https://www.cnblogs.com/zhangsanfeng/p/9432213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!