Django REST framework 分页

# urls.py
from django.conf.urls import url
from appxx import views

urlpatterns = [
    url(r"^authors/$", views.AuthorView.as_view()),
]
# serializers.py
from appxx import models
from rest_framework import serializers

class AuthorSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Author
        fields = "__all__"
# views.py
from appxx import models
from appxx import serializers
from rest_framework.views import APIView
from rest_framework import pagination

class MyPageNumberPagination(pagination.PageNumberPagination):
    page_query_param = "page"  # URL参数名称
    page_size = 2  # 每页显示多少条数据
    page_size_query_param = "size"  # page=2&size=3 --> 第二页显示4、5、6条的数据
    max_page_size = 8  # 每页最多显示多少条数据

class AuthorView(APIView):
    def get(self, request):
        authors_list = models.Author.objects.all()
        my_page = MyPageNumberPagination()
        authors_page = my_page.paginate_queryset(queryset=authors_list, request=request, view=self)
        s = serializers.AuthorSerializer(authors_page, many=True)
        return Response(s.data)
        # return pnp.get_paginated_response(s.data)

猜你喜欢

转载自www.cnblogs.com/believepd/p/10202618.html
今日推荐