Django는 모델을 만들고 그 모델안에서 데이터가 쌓이고 조회 또는 삭제를 해줄 수 있지만 궁극적으로 API를 만들어주어 클라이언트와 소통을 할 수 있게 된다. rest framework를 설치하여 API를 만드는 과정을 알아보자!🤜🤜
Django Rest Framework는 API를 구축할 수 있는 도구이다. 이 프레임워크를 사용하여 생성한 데이터들을 바탕으로 API를 개발할 수 있습니다.
Rest Framework설치하기
> poetry add djangorestframework #가상환경에서 해야함.
> pip install djangorestframework #위의 방법으로 설치해도 적용안되는 경우가 있음.
👏 설치후에 config/settings.py에 INSTALLED_APPS에 등록해주어야 한다.
Serializer
를 통해 objects <=> XML,JSON간의 데이터를 변환해야한다. 기본적으로 직렬화를 통해 Django(objects) => JSON(문자열)
,역직렬화를 통해 JSON => Django(objects)
클라이언트가 최종적으로 데이터를 받을 때 장고의 객체를 이해할 수 없기 때문에 변환하는 과정이 꼭 필요한다.
1. serializers.py파일을 Feeds app에 추가해 만들고 직렬화를 해준다. Serializer할 클래스 생성후 ModelSerializer를 상속받는다.
from rest_framework.serializers import ModelSerializer
from .models import Feed #feed/models의 Feed테이블모델
class FeedsSerializer(ModelSerializer):
class Meta:
model = Feed
fields = "__all__" #데이터테이블의 모든 필드 출력
2. Serializer를 만들어준후 view.py에 import해준후 Feeds
클래스에 추가해준다.
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Feed
from .serializers import FeedsSerializer
class Feeds(APIView):
def get(self, request):
feeds = Feed.objects.all() #Feed모델의 모든 객체
serializer = FeedsSerializer(feeds, many=True) #?? #serializer실행
return Response(serializer.data)
from django.urls import path
from . import views
urlpatterns = [
path("", views.Feeds.as_view())
]
설정해준 경로로 이동하면 JSON데이터
로 변환 된 것을 확인할 수 있다.