[Django] Static files

Jingi·2024년 3월 28일

Web

목록 보기
13/40
post-thumbnail

Static files

  • 서버 측에서 변경되지 않고 고정적으로 제공되는 파일
    (이미지, JS, CSS 파일 등)

웹 서버와 정적 파일

  • 웹 서버의 기본동작은 특정 위치에 있는 자원을 요청 받아서 응답을 처리하고 제공하는 것
  • 정적 파일 제공을 위한 경로가 있어야함

Static files 제공하기

  • 기본경로 제공하기
    • Static files 기본경로
    • app폴더/static/

STATIC_URL

  • 기본 경로 및 추가 경로에 위치한 정적 파일을 참조하기 위한 URL -> 실제 파일이나 디렉토리가 아니며, URL로만 존재
  • 정적 파일을 제공하려면 요청에 응답하기 위한 URL이 필요
  • URL + STATIC_URL + 정적파일 경로

Static files 추가 경로

  • STATICFILES_DIRS에 문자열 값으로 추가 경로 설정

STATICFILES_DIRS

  • 정적 파일의 기본 경로 외에 추가적인 경로 목록을 정의하는 리스트


Media Files

  • 사용자가 웹에서 업로드하는 정적 파일

ImageField()

  • 이미지 업로드에 사용하는 모델 필드
  • 이미지 객체가 직접 저장되는 것이 아닌 '이미지 파일의 경로'가 문자열로 DB에 저장

미디어 파일 제공을 위한 사전 준비

  • settings.py에 MEDIA_ROOT, MEDIA_URL 설정
  • 작성한 MEDIA_ROOT와 MEDIA_URL에 대한 url 지정

MEDIA_ROOT

  • 실제 미디어 파일들이 위치하는 디렉토리의 절대 경로

MEDIA_URL

  • MEDIA_ROOT에서 제공되는 미디어 파일에 대한 주소를 생성

MEDIA_ROOT와 MEDIA_URL에 대한 url 지정

  • 업로드 된 파일을 제공하는 URL == settings.MEDIA_URL

  • 위 URL을 통해 참조하는 파일의 실제 위치 == settings.MEDIA_ROOT

  • 라이브러리 설치

    pip install pillow
  • form 요소의 enctype 속성 추가

  • views.py

업로드 이미지 제공하기

  • 'url' 속성을 통해 업로드 파일의 경로 값을 얻을 수 있음
  • article.image.url
    • 업로드 파일의 경로
  • article.image
    • 업로드 파일의 파일 이름
    • detail.html

업로드 이미지 수정

  • update.html
  • views.py
profile
데이터 분석에서 백엔드까지...

0개의 댓글