Looking for django Keywords? Try Ask4Keywords

Django 장고 양식으로 파일 업로드


우선 settings.py 파일에 MEDIA_ROOTMEDIA_URL 을 추가해야합니다.

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

또한 여기에서는 ImageField 를 사용하기 때문에 베갯잇 라이브러리 ( pip install pillow )를 pip install pillow 하십시오. 그렇지 않으면 다음과 같은 오류가 발생합니다.

ImportError: No module named PIL

베개는 더 이상 유지 관리되지 않는 Python Imaging Library 인 PIL 포크입니다. 베개는 PIL과 역 호환됩니다.

Django는 FileFieldImageField 서버에 업로드하기 위해 두 개의 폼 필드를 제공합니다. 다음은이 두 필드를 우리의 폼에서 사용하는 예제입니다

forms.py :

from django import forms


class UploadDocumentForm(forms.Form):
    file = forms.FileField()
    image = forms.ImageField()

views.py :

from django.shortcuts import render
from .forms import UploadDocumentForm


def upload_doc(request):
    form = UploadDocumentForm()
    if request.method == 'POST':
        form = UploadDocumentForm(request.POST, request.FILES)  # Do not forget to add: request.FILES
        if form.is_valid():
            # Do something with our files or simply save them
            # if saved, our files would be located in media/ folder under the project's base folder
            form.save()
    return render(request, 'upload_doc.html', locals())

upload_doc.html :

<html>
    <head>File Uploads</head>
    <body>
        <form enctype="multipart/form-data" action="" method="post"> <!-- Do not forget to add: enctype="multipart/form-data" -->
            {% csrf_token %}
            {{ form }}
            <input type="submit" value="Save">
        </form>
    </body>
</html>