[python] Django REST framework에서의 동영상 업로드 처리 방법

Django REST framework은 Django 기반의 웹 애플리케이션에서 RESTful API를 구축하기 위한 강력한 도구입니다. 이를 통해 동영상 업로드와 관련된 작업을 쉽게 처리할 수 있습니다. 이번 블로그에서는 Django REST framework를 사용하여 동영상을 업로드하는 방법에 대해 알아보겠습니다.

1. 필요한 패키지 설치

먼저 Django REST framework를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install djangorestframework

2. 모델 정의하기

동영상을 업로드할 모델을 정의해야 합니다. 예를 들어, Video 모델을 만들어보겠습니다:

from django.db import models

class Video(models.Model):
    title = models.CharField(max_length=100)
    video = models.FileField(upload_to='videos/')
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

위의 코드에서 upload_to 파라미터는 업로드된 동영상 파일이 저장될 경로를 지정합니다. 이 예시에서는 media/videos/ 경로에 저장합니다.

3. Serializer 정의하기

동영상 모델을 직렬화하기 위한 Serializer를 정의해야 합니다:

from rest_framework import serializers
from .models import Video

class VideoSerializer(serializers.ModelSerializer):
    class Meta:
        model = Video
        fields = '__all__'

위의 코드에서는 Video 모델을 사용하는 VideoSerializer를 정의하고, fields 파라미터를 '__all__'로 지정하여 모든 필드를 직렬화합니다.

4. ViewSet 정의하기

동영상 업로드를 처리하기 위해 ViewSet을 정의합니다. 예를 들어, VideoViewSet을 정의하여 동영상 업로드, 조회, 수정, 삭제 기능을 제공할 수 있습니다:

from rest_framework import viewsets
from .models import Video
from .serializers import VideoSerializer

class VideoViewSet(viewsets.ModelViewSet):
    queryset = Video.objects.all()
    serializer_class = VideoSerializer

위의 코드에서 ModelViewSet은 모든 CRUD(Create, Retrieve, Update, Delete) 기능을 자동으로 제공합니다.

5. URL 패턴 설정

마지막으로, 동영상 업로드를 처리하기 위한 URL 패턴을 설정해야 합니다. urls.py 파일을 열고 다음과 같이 URL 패턴을 추가합니다:

from django.urls import include, path
from rest_framework import routers
from .views import VideoViewSet

router = routers.DefaultRouter()
router.register('videos', VideoViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

위의 코드에서 'videos'는 동영상 업로드 기능에 대한 URL 경로를 지정합니다.

결론

Django REST framework를 사용하여 동영상 업로드를 처리하는 방법에 대해 알아보았습니다. 이를 통해 Django 기반의 웹 애플리케이션에서 간단하게 동영상 업로드 기능을 구현할 수 있습니다.

관련 문서: Django REST framework