FrameWork/Django
File Upload
mansoorrr
2024. 7. 21. 22:03
django 공식문서에서는 File Upload를 위해 다음과 같이 세팅하라고 안내한다.
- MEDIA_ROOT 설정
- MEDIA_URL 설정
- url 등록
하지만 이것은 보안에 문제가 있으므로 개발중에만 이렇게 진행하라고 안내한다.
Settings | Django documentation
The web framework for perfectionists with deadlines.
docs.djangoproject.com
[** File Upload**]
- MEDIA_ROOT: 개발 서버 상에서 실제로 이미지가 저장되는 폴더
- MEDIA_URL: URL상에서 이미지의 경로
- 결국, 127.0.0.1:8000/MEDIA_URL/<file_name>이 되어 웹상에서 파일을 볼 수 있음
#---------- config/settings.py
<생략..>
#Media
MEDIA_ROOT = 'uploads' #업로드한 파일이 저장되는 경로
MEDIA_URL = 'user-uploads/' #업로드한 파일을 웹상에서 볼 수 있는 경로
- url등록: MEDIA_URL을 통해 새로운 URL이 등록되었으므로 config/urls.py에도 등록되어야 함
- Media 파일의 경우 django에서 기본적으로 제공하는 static 매서드를 통해 url등록
#---------- config/urls.py
from django.contrib import admin
from django.urls import include, path
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path('api/v1/rooms/', include('rooms.urls')),
path('api/v1/categories/', include('categories.urls')),
path('api/v1/experiences/', include('experiences.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) #url등록