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