텍스트와 다르게 이미지를 저장하려면 많은 수고가 든다.




1) Settings.py에서 이미지 파일을 저장베이스 폴더(media) 경로를 설정한다.


1
2
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
cs



2) Urls.py에서 개발 중미디어 파일(이미지, 비디오 등)을 다루기 위한 세팅

(단, DEBUG 상태에서만 가능하도록 if문을 별도로 작성)


1
2
3
4
5
6
from django.conf import settings
from django.conf.urls.static import static
 
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
cs



3) Models.py에서 이미지 필드 만들기


1
image = models.ImageField()
cs


*이미지 필드 사용시 Pillow(https://pillow.readthedocs.io/en/latest/)라는 라이브러리 설치가 migrate 과정에서 요구된다.

(내가 올리는 이미지 파일의 포맷을 도와준다)



4) Forms.py에서 이미지 필드 지정하기


1
2
3
4
5
6
class Form(ModelForm):
     class Meta:
         model = 
         fields = (
             'image'
         )
cs



5) 템플릿에서 에 이미지 파일을 입력 받기 위해 이미지 전송을 위한 별도의 속성을 추가한다


1
<form enctype="multipart/form-data" method="post" action="">
cs



4) View에서 폼을 통해 입력 받은 이미지를 폼에 두고자 이미지 소스(request.FILES)를 데이터 소스와 같이 둔다. 


1
2
if request.method == "POST":
    form = Form(request.POST, request.FILES)
cs


블로그 이미지

쵸잇

,