django를 통해 파일 다루기
- static 파일(정적 파일)
미리 서버에 저장되어 있는 파일
서버에 저장된 그대로를 서비스 해주는 파일
- dynamic 파일
서버에 있는 데이터들이 어느정도 가공된 다음 서비스 되는 파일
누가 어디서 어떻게 저장하느냐에 따라 달라지는 파일
- "static" - 프로젝트 입장에서 뭔지 아는 파일(개발 전, 미리 준비해둔 파일)
- "media" - 웹 서비스 이용자들이 업로드 하는 파일!
- static 파일의 처리 과정
- 위치 찾기
- 모으기
- static 담을 폴더 만들기 (앱 안에 static 만들고 파일 넣기)
- 장고에게 파일이 어디있고 어디로 모을지 알려주기 (settings.py에서)
STATIC_URL = '/static/'
STATICFILES_DIRES = [
os.path.join(BASE_DIR, 'portfolio', 'static')
]
#현재 static 파일이 어디에 있는지 쓰기 (portfolio앱 안에 static폴에 넣어주었다라는 의미)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
#static file이 어디로 모일 것인지를 쓰는 곳
3. 모으기 (python manage.py collectstatic)
- html에 나 스태틱 쓸거야 ~~ 선언하고 끗
- {% load staticfiles %} -> load static
- media 파일의 처리 과정
- settings.py -> 디렉토리 경로, URL
스태틱은 데이터베이스->유저, 미디어는 유저가->업로드->디비->다시 유저
장고와 외부의 통신망 !! = url!!
- settings.py ~ 어떤 URL: MEDIA_URL , 어디로 모을지: MEDIA_ROOT
- settings.py ~ 설정해 줄 것.
from django.conf import settings #settings의 media를 쓰기위함
from django.conf.ruls.static import static
+ static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
- media 순서
- settings.py에서 media 설정 -> urls.py에서 설정
- models.py에서 업로드될 데이터 클래스 정의 -> migrate(db에게 아리기)
- admin.py를 만들고->admin.site.register() 어드민 등록
- 객체내용을 보여줄 views.py 정의
- html 띄우기