장고 - 개발환경에서 이미지 파일 업로드하는 방법
1. 미디어 경로 설정
- 프로젝트 설정에서 media url 과 media root를 설정하고 urlpatterns에 그 경로를 지정한다.
- 경로 : config(프로젝트 명) > settings.py
1
2
3
4MEDIA_URL = '/media/'
# MEDIA_URL로 사이트 url 설정
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 장고에 media라는 폴더 이름 설정
- 경로 : config(프로젝트 명) > urls.py)
1
2
3
4
5from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# settings.py에서 설정한 media 경로와 연동
2. 앱 모델에서 이미지 필드 설정
- 이미지 필드를 사용하여 모델을 설정한다. (upload_to로 디렉토리 경로 설정)
- 경로 : board(앱 이름) > models.py
1
2image = models.ImageField(upload_to='board_images/%Y/%m/%d')
# media 디렉토리 > board_images > 2019 > 05 > 17 > 이미지 파일명
3. form enctype 설정
- 템플릿 html form에서 유저가 파일 업로드할 수 있도록 enctype을 설정한다.
1
2
3
4
5
6
7<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<table>
{{form.as_table}}
</table>
<input type="submit" value="Write">
</form>
Posted