在Django RESTful框架中,實現分頁功能非常簡單。你只需要在視圖(views)中設置pagination_class
屬性,然后在URL配置中指定該視圖即可。以下是一個簡單的示例:
pip install djangorestframework
在你的Django項目的settings.py
文件中,將'rest_framework'
添加到INSTALLED_APPS
列表中。
創建一個分頁類。在任意應用目錄下創建一個名為pagination.py
的文件,并在其中添加以下內容:
from rest_framework.pagination import PageNumberPagination
class StandardResultsSetPagination(PageNumberPagination):
page_size = 10
page_size_query_param = 'page_size'
max_page_size = 100
在這個例子中,我們創建了一個名為StandardResultsSetPagination
的分頁類,每頁顯示10條記錄。你還可以根據需要自定義page_size
、page_size_query_param
和max_page_size
等屬性。
pagination_class
屬性。例如,如果你有一個名為MyModelViewSet
的視圖,可以這樣設置分頁類:from rest_framework import viewsets
from .models import MyModel
from .serializers import MyModelSerializer
from .pagination import StandardResultsSetPagination
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
pagination_class = StandardResultsSetPagination
urls.py
文件中,可以這樣配置路由:from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import MyModelViewSet
router = DefaultRouter()
router.register(r'mymodel', MyModelViewSet)
urlpatterns = [
path('', include(router.urls)),
]
現在,當你訪問/mymodel/
這個URL時,Django RESTful框架會自動對查詢結果進行分頁,并在響應中包含分頁信息。你可以通過?page_size=
參數來指定每頁顯示的記錄數,例如/mymodel/?page_size=20
。