본문 바로가기

프로그래밍/Django개발(MAC OS)

Django restframework 4. ListAPIView

반응형

2021.04.03 - [프로그래밍/Django개발(MAC OS)] - [Django Rest Framework] 시작하기 Rest API 소개

2021.04.24 - [프로그래밍/Django개발(MAC OS)] - Django restframework 2. 설치하기

2021.04.24 - [프로그래밍/Django개발(MAC OS)] - Django restframework 3. APIView

 

 

 


 

이번에는 ListAPIView를 활용해보도록 하겠습니다.

ListAPIView는 GenericsView에서 제공하는 API입니다.

 

ListAPIView를 사용하면 더욱 편하게 List화면과 Pagenation을 구현할 수 있습니다.

 

 

사용방법

아주 간단합니다.

queryset객체를 가져오고

Serializer할 것들을 명시만 해주면 됩니다.

 

아래의 예시를 한번 보면 좋을 것 같습니다.

 

ListAPIView 사용하기

 

views.py

from rest_framework.generics import ListAPIView
from .models import Room
from .serializers import RoomSerializer

class ListRoomsView(ListAPIView):
    queryset = Room.objects.all()
    serializer_class = RoomSerializer

 

serializers.py

from rest_framework import serializers 
from .models import Room

class RoomSerializer(serializers.ModelSerializer):

    class Meta:
        model = Room
        fields = ("name","price","instant_book","user")

 

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('list/',views.ListRoomsView.as_view())
]

 

결과창

 

 

ListAPIView Pagination 기능 사용하기

pagination 기능을 사용하기 위해서는 Settings.py에 간단히 설정만 해주시면 됩니다.

 

settings.py

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10
}

 

위에 처럼 설정하면

어떻게 바뀔까요? 아래와 같이 count가 들어가있고,

next,previous, Pagination 이 들어가있죠?

 

 

 

이제 다음에는 ListView가 아닌 하나의 값을 가져오는 걸 해보도록 하겠습니다.

반응형