1. 장고 미디어 개요

Sam (토론 | 기여)님의 2021년 6월 15일 (화) 19:31 판

1 개요

사용자들이 업로드하는 이미지나 이런저런 미디어를 관리하는 설정을 해주어야 한다.

기본적으로 스테틱과 유사하다.

미디어의 사용이 많은 경우, 본 서버와 별개로, 미디어 서버를 운영하기도 한다.

2 사전준비

2.1 경로지정

settings.py에서 경로를 지정해주어야 한다.

변수 설명 기입예시
MIDIA_URL 미디어에 접속하기 위한 주소는 어떻게 지정할 것인가?

MEDIA_URL 속성 : 일반적으로 '/media/'라고 지정하는데, media의 url root를 설정하는 것이라 생각하면 된다. 도메인/media/으로 접근하면 미디어 디렉터리의 루트에 이를 수 있다. ('http://도메인/media/경로'로 접속하면 디렉터리 하위에 접근할 수 있다.)

MIDIA_URL = '/media/'
MIDIA_ROOT 올린 미디어 파일들을 어디에 저장할 것인가? MIDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'  # 외부에서 접속할 URL 주소.
MEDIA_ROOT = BASE_DIR / 'media' # 프로젝트에서 미디어파일을 저장할 경로.

2.2 pillow 설치

pip install pillow : 장고에서 미디어파일을 관리해주는 라이브러리.

2.3 미디어 URl

그러나 스테틱과 달리, 위와같은 설정만으로 해당 파일에 접속할 수는 없다. 최상단의 urls.py에서 파일들을 연결해주기 위한 url을 작성해야 한다.

# 2개의 모듈을 추가해온다.
from django.conf.urls.static import static
from django.conf import settings

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# static을 연결하는데, 경로는 settings에서 설정한 MEDIA_URL로,
# 실제경로는 settings에서 설정한 MEDIA_ROOT로  지정한다.

3 기억하면 좋을 사실

같은 이름의 파일을 올리면 알아서 다른 이름을 지정하여 저장해준다.