공부/2019W Django

django를 통해 파일 다루기

sssssssszii 2020. 2. 21. 19:45
  • static 파일(정적 파일)

        미리 서버에 저장되어 있는 파일

        서버에 저장된 그대로를 서비스 해주는 파일

 

  • dynamic 파일

       서버에 있는 데이터들이 어느정도 가공된 다음 서비스 되는 파일

        누가 어디서 어떻게 저장하느냐에 따라 달라지는 파일

 

        1. "static" - 프로젝트 입장에서 뭔지 아는 파일(개발 전, 미리 준비해둔 파일)
        2. "media" - 웹 서비스 이용자들이 업로드 하는 파일!

 

        • static 파일의 처리 과정
        1. 위치 찾기
        2. 모으기
          1. static 담을 폴더 만들기 (앱 안에 static 만들고 파일 넣기)
          2. 장고에게 파일이 어디있고 어디로 모을지 알려주기 (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 순서
        1. settings.py에서 media 설정 -> urls.py에서 설정
        2. models.py에서 업로드될 데이터 클래스 정의 -> migrate(db에게 아리기)
        3. admin.py를 만들고->admin.site.register() 어드민 등록
        4. 객체내용을 보여줄 views.py 정의
        5. html 띄우기