Django에 내장되어있는 Django Image Field를 사용해서 사용자가 업로드한 정적 파일(미디어파일) 관리하는 방법
1. ImageField()
- 이미지 업로드에 사용하는 모델 필드
- FileField를 상속받는 클래스
- FileField(upload_to=””, storage=None, max_length=100, **options)
- 사용자에 의해 업로드 된 객체가 유효한 이미지인지 검사
- 최대 길이가 100자인 문자열로 DB에 생성된다.
2. MEDIA_ROOT
- settings.py 에 설정한다.
- ex)
MEDIA_ROOT = BASE_DIR / 'media'
- ex)
- 사용자가 업로드 한 파일들을 보관할 디렉토리의 절대 경로
- 업로드 파일은 DB에 저장하는 것이 아닐, 문자열로 ‘파일경로’ 가 저장된다
- MEDIA_ROOT는 STATIC_ROOT와 반드시 다른 경로로 지정해야 한다.
3. MEDIA_URL
- settings.py 에 설정한다.
- ex)
MEDIA_URL = '/media/'
- ex)
- MEDIA_ROOT에서 제공되는 미디어 파일을 처리하는 URL
- 업로드 된 파일의 주소를 만들어 주는 역할
- 비어있지 않은 값을 설정한다면 slash(/) 로 끝나야 한다
- MEDIA_URL은 STATIC_URL과 반드시 다른 경로로 지정해야 한다.
4. 개발 단계에서 사용자가 업로드한 미디어 파일 제공하기
- 사용자로부터 업로드 된 파일이 프로젝트에 업로드 → 실제 사용자에게 제공되기 위해서는 URL이 필요하다
- Google 에
django managing static files
를 검색해서 나온 공식문서대로 복붙해서 준비한다.
- project > urls.py
- Google 에
Uploaded by N2T