반응형
❤️🔥TIL : Today I Learned❤️🔥
그날그날 내가 공부한 것을 정리하는 것
내일배움캠프 AI트랙 34day
오늘 배운 내용
프로젝트 4일차 - 이미지 업로드
Django에서 다루는 이미지 등의 파일을 두가지 타입이 있다.
- static 파일 : 개발자가 웹 어플리케이션에서 개발을 위한 개발 과정에서 지정한 리소스 파일(css,js, image 등)
- media 파일 : 사용자가 서비스를 이용하면서 업로드하는 파일.
media 파일을 사용할때 static이랑 마찬가지로 settings.py에 media파일을 관리할 디렉토리를 설정해주면 된다.
#settings.py
import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
위 처럼만 설정하고 파일 업로드를 해보니... 파일이 안보이는 것이다...
처음에는 django에서 업로드 기능을 제대로 사용하지 못한거라고 생각했는데.. 또 uploads폴더에는 파일이 잘 업로드 된것 같아보이고..
왜 img 태그에서 파일이 보여지지 않을까 엄청난 고민과 이것저것 건들여보기도 하고, 다시 코드를 작성하기도 하고 했었는데...
알고 봤더니 django에서는 static파일과 다르게 media 파일은 runserver를 통한 개발환경에서의 media파일을 서빙을 권장하지 않는다고한다. 그래서 직접 서빙할려면 수동으로 urlpatterns에 추가해줘야 사용이 가능하다는 것이였다.
# urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('diary.urls')),
path('', include('user.urls')),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
추가하고 나니 정상적으로 업로드된 파일이 <img> 태그를 통해섭 볼수 있게 되었다.
Django 공식 문서를 보면 meida파일 사용에 대해서 이러한 내용을 확인 할 수 있었는데
개발모드랑 배포모드랑 가이드가 약간 다른것 같은데 조만간 해당 서비스 배포를 연습할때 자세히 확인해보고 한번 도전해봐야할것 같다.
반응형
'I learned' 카테고리의 다른 글
내일배움캠프 AI트랙 8 Week (0) | 2022.10.23 |
---|---|
내일배움캠프 AI - TIL 35 (0) | 2022.10.21 |
내일배움캠프 AI - TIL 33 (0) | 2022.10.19 |
내일배움캠프 AI - TIL 33 (1) | 2022.10.18 |
내일배움캠프 AI - TIL 32 (0) | 2022.10.17 |