[python] Django REST framework에서의 블로그 모듈 구현 방법

Django는 강력하고 유연한 웹 애플리케이션 프레임워크로 알려져 있습니다. Django를 기반으로 한 RESTful API를 구현하는 데 사용되는 Django REST framework를 사용하여 블로그 모듈을 구현하는 방법을 알아보겠습니다.

1. Django 프로젝트 설정

Django 프로젝트를 설정하고 Django REST framework를 설치합니다. 다음 명령을 사용하여 Django REST framework를 설치할 수 있습니다.

pip install djangorestframework

2. 모델 설정

블로그 게시물을 나타내는 Post 모델과 그에 대한 댓글을 나타내는 Comment 모델을 만듭니다. 예를 들면 다음과 같습니다.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

3. 시리얼라이저 설정

시리얼라이저는 Django 모델 인스턴스를 JSON과 같은 직렬화된 형식으로 변환해주는 역할을 합니다. PostComment에 대한 시리얼라이저 클래스를 작성합니다. 예를 들면 다음과 같습니다.

from rest_framework import serializers
from .models import Post, Comment

class CommentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Comment
        fields = '__all__'

class PostSerializer(serializers.ModelSerializer):
    comments = CommentSerializer(many=True, read_only=True)

    class Meta:
        model = Post
        fields = '__all__'

4. API 뷰 설정

API 뷰는 클라이언트로부터의 요청을 처리하고 응답을 반환하는 역할을 합니다. 블로그 게시물에 대한 API 뷰를 작성합니다. 다음은 PostListCreateAPIViewPostRetrieveUpdateDestroyAPIView를 사용하여 작성한 예입니다.

from rest_framework.generics import ListCreateAPIView, RetrieveUpdateDestroyAPIView
from .models import Post
from .serializers import PostSerializer

class PostListCreateAPIView(ListCreateAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

class PostRetrieveUpdateDestroyAPIView(RetrieveUpdateDestroyAPIView):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

5. URL 설정

URL 설정은 사용자가 API에 접근할 수 있는 엔드포인트를 지정합니다. 다음과 같이 URL 패턴을 정의하여 블로그 게시물에 대한 API URL을 설정합니다.

from django.urls import path
from .views import PostListCreateAPIView, PostRetrieveUpdateDestroyAPIView

urlpatterns = [
    path('posts/', PostListCreateAPIView.as_view(), name='post-list-create'),
    path('posts/<int:pk>/', PostRetrieveUpdateDestroyAPIView.as_view(), name='post-retrieve-update-destroy'),
]

6. 마이그레이션 및 서버 실행

Django의 마이그레이션 명령을 실행하여 데이터베이스에 모델 변경 사항을 반영합니다. 다음 명령을 사용할 수 있습니다.

python manage.py makemigrations
python manage.py migrate

마이그레이션이 완료되면 Django 개발 서버를 실행하여 API에 접근할 수 있습니다.

python manage.py runserver

이제 Django REST framework를 사용하여 블로그 모듈을 구현하는 방법을 알아보았습니다. Django의 강력한 기능과 RESTful API 개발에 유용한 Django REST framework를 통해 효율적이고 확장 가능한 블로그 모듈을 개발할 수 있습니다.

참고 자료