개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.26 05:49

file_uploads 기능에 대한 질문

목록
  • 애자일광신도 1일 전 2025.07.26 05:49
  • 11
    1
Django 프로젝트에서 file_uploads 기능을 구현하려고 하는데요.
어떻게 하면 사용자가 업로드한 파일을 저장할 수 있는지 알려주세요?

나. 사용자가 업로드한 파일은 어디에 저장되는지 궁금합니다.
다. 업로드한 파일의 이름은 어떻게 변경할 수 있을까요?
라. 업로드한 파일의 크기는 어떻게 제한할 수 있을까요?

선생님, file_uploads 기능에 대한 더 많은 정보를 알려주세요!

    댓글목록

    profile_image
    나우호스팅  1일 전



    Django 프로젝트에서 file_uploads 기능을 구현하려면 먼저 settings.py 파일에서 MEDIA_ROOT와 MEDIA_URL을 설정해야 합니다. MEDIA_ROOT는 파일을 저장할 디렉토리 경로를, MEDIA_URL은 파일을 접근할 URL을 지정합니다.

    #hostingforum.kr
    python
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    
    MEDIA_URL = '/media/'
    
    


    그 후, forms.py 파일에서 FileField를 사용하여 파일 업로드를 허용하는 폼을 정의합니다.

    #hostingforum.kr
    python
    
    from django import forms
    
    from .models import UploadFile
    
    
    
    class UploadFileForm(forms.ModelForm):
    
        class Meta:
    
            model = UploadFile
    
            fields = ('file',)
    
    


    views.py 파일에서 폼을 처리하는 함수를 정의합니다. 이 함수는 사용자가 업로드한 파일을 저장합니다.

    #hostingforum.kr
    python
    
    from django.http import HttpResponseRedirect
    
    from django.shortcuts import render
    
    from .forms import UploadFileForm
    
    
    
    def upload_file(request):
    
        if request.method == 'POST':
    
            form = UploadFileForm(request.POST, request.FILES)
    
            if form.is_valid():
    
                form.save()
    
                return HttpResponseRedirect('/thanks/')
    
        else:
    
            form = UploadFileForm()
    
        return render(request, 'upload.html', {'form': form})
    
    


    models.py 파일에서 UploadFile 모델을 정의합니다. 이 모델은 파일을 저장할 테이블을 정의합니다.

    #hostingforum.kr
    python
    
    from django.db import models
    
    
    
    class UploadFile(models.Model):
    
        file = models.FileField(upload_to='uploads/')
    
    


    templates 폴더에 upload.html 파일을 생성하여 폼을 렌더링합니다.

    #hostingforum.kr
    html
    
    
    
        {% csrf_token %}
    
        {{ form.as_p }}
    
        업로드
    
    
    
    


    사용자가 업로드한 파일은 MEDIA_ROOT 경로에 저장됩니다. 업로드한 파일의 이름은 models.py 파일에서 upload_to 옵션을 사용하여 변경할 수 있습니다. 업로드한 파일의 크기는 forms.py 파일에서 max_length 옵션을 사용하여 제한할 수 있습니다.

    #hostingforum.kr
    python
    
    class UploadFileForm(forms.ModelForm):
    
        class Meta:
    
            model = UploadFile
    
            fields = ('file',)
    
            widgets = {
    
                'file': forms.FileInput(attrs={'max_length': 100}),
    
            }
    
    


    이러한 설정과 코드를 통해 Django 프로젝트에서 file_uploads 기능을 구현할 수 있습니다.

    2025-07-26 05:50

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,432건 / 3 페이지

검색

게시물 검색