Static Files (정적 파일)
서버 측에서 변경되지 않고 고정적으로 제공되는 파일 (이미지, JS, CSS 파일 등)
웹 서버와 정적 파일
웹 서버의 기본 동작은 특정 위치(URL)에 있는 자원을 요청(HTTP request) 받아서 응답(HTTP response)을 처리하고 제공하는 것
이는 '자원에 접근 가능한 주소가 있다'는 의미
웹 서버는 요청받은 URL로 서버에 존재하는 정적 자원을 제공함
→ 정적 파일을 제공하기 위한 경로(URL)가 있어야 함
Static Files 제공하기
기본 경로에서 제공하기
추가 경로에서 제공하기
Static files 기본 경로
app폴더/static
STATIC_URL
기본 경로 및 추가 경로에 위치한 정적 파일을 참조하기 위한 URL
→ 실제 파일이나 디렉토리가 아니며, URL로만 존재
URL + STATIC_URL + 정적 파일 경로
http://127.0.0.1:8000/static/articles/sample-1.png
Static files 추가 경로
STATICFILES_DIRS에 문자열 값으로 추가 경로 설정
STATICFILES_DIRS
정적 파일의 기본 경로 외에 추가적인 경로 목록을 정의하는 리스트
정적 파일을 제공하려면 요청에 응답하기 위한 URL이 필요
사진 업로드가 안되면 장고를 껏다가 키면 됨!
상속을 위해선 extend를 사용함, 이때 load는 무조건 extend 아래에 있어야 함
Media Files
사용자가 웹에서 업로드하는 정적 파일 (user-uploaded)
ImageField() 이미지 업로드
이미지 업로드에 사용하는 모델 필드
◆ 이미지 객체가 직접 저장되는 것이 아닌 '이미지 파일의 경로'가 문자열로 DB에 저장
미디어 파일 제공을 위한 사전 준비
setting.py 에 MEDIA_ROOT, MEDIA_URL 설정
작성한 MEDIA_ROOT와 MEDIA_URL에 대한 url 지정
MEDIA_ROOT
실제 미디어 파일들이 위치하는 디렉토리의 절대 경로
MEDIA_URL
MEDIA_ROOT에서 제공되는 미디어 파일에 대한 주소를 생성 (STATIC_URL과 동일한 역할)
동일한 이미지를 여러번 삽입할 경우, 장고가 알아서 이름을 변경함
models.py 파일 수정한 경우 python manage.py makemigrations 다시 하기!
db,splite3 안에 내용을 만들때, appname_이름 형태로 작성해 주는 것이 약속~!