Notice
Recent Posts
Recent Comments
Link
SeouliteLab
파이썬 Django 웹 애플리케이션에서 RESTful API 구축하기: Django REST Framework 활용 가이드 본문
카테고리 없음
파이썬 Django 웹 애플리케이션에서 RESTful API 구축하기: Django REST Framework 활용 가이드
Seoulite Lab 2024. 4. 16. 08:52기능 1: 시리얼라이저(Serializer)를 통한 데이터 직렬화 및 역직렬화
Django REST Framework(DRF)는 시리얼라이저를 통해 모델 데이터를 JSON 또는 다른 포맷으로 변환하고 역직렬화하여 모델 객체로 변환할 수 있습니다. 이를 통해 API 엔드포인트에서 데이터를 쉽게 처리할 수 있습니다.
예제 1: 시리얼라이저 사용
# serializers.py
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author', 'published_date']
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Book
from .serializers import BookSerializer
class BookList(APIView):
def get(self, request):
books = Book.objects.all()
serializer = BookSerializer(books, many=True)
return Response(serializer.data)
기능 2: API 뷰(API View)를 통한 엔드포인트 구현
DRF는 API 뷰를 통해 API 엔드포인트를 구현할 수 있습니다. API 뷰를 사용하면 HTTP 요청에 대한 응답을 정의할 수 있으며, 인증, 권한 및 다양한 기능을 쉽게 구현할 수 있습니다.
예제 2: API 뷰 구현
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Book
from .serializers import BookSerializer
class BookDetail(APIView):
def get(self, request, pk):
try:
book = Book.objects.get(pk=pk)
except Book.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = BookSerializer(book)
return Response(serializer.data)
기능 3: 라우터(Router)를 통한 URL 패턴 관리
DRF는 라우터를 통해 URL 패턴을 관리할 수 있습니다. 이를 통해 API 엔드포인트를 쉽게 설정하고 관리할 수 있습니다.
예제 3: 라우터 사용
# urls.py
from django.urls import path
from rest_framework.routers import DefaultRouter
from .views import BookViewSet
router = DefaultRouter()
router.register(r'books', BookViewSet)
urlpatterns = router.urls