[python] Django의 파일 업로드 처리 방법은 어떻게 되는가?
파일 업로드는 Django에서 자주 사용되는 기능 중 하나입니다. Django는 파일 업로드를 처리하기 위해 FileField
또는 ImageField
와 같은 모델 필드를 제공합니다. 이 필드를 사용하여 사용자로부터 파일을 입력 받고, 서버에 업로드하고, 필요한 경우 파일을 처리합니다.
아래는 Django에서 파일 업로드를 처리하는 간단한 예시입니다:
- 먼저, 모델에
FileField
또는ImageField
를 추가합니다. 예를 들어,ImageField
를 사용하여 이미지 파일을 업로드하는 모델을 만들어 봅시다:
from django.db import models
class MyModel(models.Model):
image = models.ImageField(upload_to='images/')
- 다음으로, 파일을 업로드하는 뷰를 생성합니다. 예를 들어, 다음과 같은 뷰 함수를 사용할 수 있습니다:
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})
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 템플릿 태그입니다.
- 마지막으로,
settings.py
파일에서MEDIA_ROOT
및MEDIA_URL
을 설정해야합니다:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
MEDIA_ROOT
는 업로드된 파일을 저장할 디렉토리 경로입니다. MEDIA_URL
은 업로드된 파일에 접근할 수 있는 URL 경로입니다.
이제 파일 업로드를 처리할 준비가 되었습니다. Django는 업로드된 파일을 MEDIA_ROOT
디렉토리에 저장하고, 필요한 경우 MEDIA_URL
을 통해 해당 파일에 접근할 수 있게 됩니다.
참고 문서:
- Django 공식 문서: 파일 업로드 및 저장
- Django 공식 문서: FileField
- Django 공식 문서: ImageField