settings.py REST_FRAMEWORK에 추가
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
], # 이건 기존에 있는 내용
'DEFAULT_PAGINATION_CLASS' : 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE' : 5, # 한 page 당 보여줄 개수
}
from .models import House2
from rest_framework.views import APIView
from rest_framework.pagination import PageNumberPagination
class Houses(APIView, PageNumberPagination):
def get(self, request):
all_houses = House2.objects.all()
results = self.paginate_queryset(all_houses, request)
serializer = HouseSerializer(results, many=True)
return self.get_paginated_response(serializer.data)
urlpatterns=[
path("", views.Houses.as_view()),
]
ViewSet을 상속 받아서 사용
from rest_framework.viewsets import ModelViewSet
from .models import House2
class HouseViewSet(ModelViewSet):
serializer_class = HouseSerializer
queryset = House2.objects.all()
urlpatterns = [
path("", views.HouseViewSet.as_view(
{
"get": "list",
"post": "create",
}
),
),
path("<int:pk>", views.HouseViewSet.as_view(
{
"get": "retrieve",
"put": "partial_update",
"delete": "destroy",
}
),
),
]

from .models import House2
from rest_framework.views import APIView
from rest_framework.pagination import LimitOffsetPagination
class Houses(APIView, LimitOffsetPagination):
def get(self, request):
all_houses = House2.objects.all()
results = self.paginate_queryset(all_houses, request)
serializer = HouseSerializer(results, many=True)
return self.get_paginated_response(serializer.data)