[python] Django의 파일 업로드 처리 방법은 어떻게 되는가?

파일 업로드는 Django에서 자주 사용되는 기능 중 하나입니다. Django는 파일 업로드를 처리하기 위해 FileField 또는 ImageField와 같은 모델 필드를 제공합니다. 이 필드를 사용하여 사용자로부터 파일을 입력 받고, 서버에 업로드하고, 필요한 경우 파일을 처리합니다.

아래는 Django에서 파일 업로드를 처리하는 간단한 예시입니다:

  1. 먼저, 모델에 FileField 또는 ImageField를 추가합니다. 예를 들어, ImageField를 사용하여 이미지 파일을 업로드하는 모델을 만들어 봅시다:
from django.db import models

class MyModel(models.Model):
    image = models.ImageField(upload_to='images/')
  1. 다음으로, 파일을 업로드하는 뷰를 생성합니다. 예를 들어, 다음과 같은 뷰 함수를 사용할 수 있습니다:
from django.shortcuts import render

def upload_file(request):
    if request.method == 'POST':
        form = MyForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return render(request, 'success.html')
    else:
        form = MyForm()
    return render(request, 'upload.html', {'form': form})
  1. upload.html 템플릿을 생성하여 업로드 폼을 보여줍니다:

<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">업로드</button>
</form>

위의 예시에서, enctype="multipart/form-data" 속성은 파일 업로드를 지원하는 폼을 생성합니다. 그리고 {{ form.as_p }}는 폼 필드를 자동으로 렌더링하는 Django 템플릿 태그입니다.

  1. 마지막으로, settings.py 파일에서 MEDIA_ROOTMEDIA_URL을 설정해야합니다:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

MEDIA_ROOT는 업로드된 파일을 저장할 디렉토리 경로입니다. MEDIA_URL은 업로드된 파일에 접근할 수 있는 URL 경로입니다.

이제 파일 업로드를 처리할 준비가 되었습니다. Django는 업로드된 파일을 MEDIA_ROOT 디렉토리에 저장하고, 필요한 경우 MEDIA_URL을 통해 해당 파일에 접근할 수 있게 됩니다.

참고 문서: