Leta Learns

django | Static 파일 본문

Django

django | Static 파일

leta 2021. 7. 7. 13:49

static 파일

: 이미지, CSS, JS 파일처럼 내용이 고정되어 있어서 응답을 할 때 별도의 처리 없이 파일 그대로 보내주면 되는 파일들

  => 미리 저장해두고 필요할 때 불러오는 파일

 

 

  1. 앱 폴더 안에 static 폴더 생성
  2. 이미지 다운 후 static 폴더에 해당 이미지 저장

 

 

settings.py

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

STATIC_URL = '/static/'

STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'blog', 'static') # BASE_DIR/blog/static
	# os.path.join(BASE_DIR, '앱이름', 'static')
]

# static django에서는 편의를 위해 흩어져있는 static파일을 한곳에 모으는데, 
# 그때 파일을 모아줄 위치를 나타냅니다.
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # BASE_DIR/static

사진을 띄우기 위해 프로젝트 전체 관리자에게 해당파일이 어디에 위치해있는지 명시해야 함.

 => settings.py 수정 (settings.py가 프로젝트 전체 관장)

 

static 파일을 활용하려면

static 파일이 어디에 있는지, static 파일을 어디에 모을건지

settings.py에 알려줘야 함.

 

os 모듈 활용하므로 import os 필요.

 

 

 

$ python manage.py collectstatic 

#static 파일 모으기

 

새로 생긴 static 폴더는 settings.py의 STATICFILES_DIRS 경로 안에 있는 모든 static 파일들을 한 곳에 모은다.

이 폴더의 경로 : STATIC_ROOT에 설정해준 곳.

 

 

 

{% load static %}

#template에 static 파일들을 불러오겠다. (장고 내장 명령어)

{% load static %}
# 위 코드를 통해 static 파일에 접근이 가능하다

<img src = "{% static '파일이름.확장자' %}" alt = "">
# "{% static '파일이름.확장자' %}"를 통해 static 파일에 안에 있는 것에 접근할 수 있다.

base.html에 static 파일 적용하기

=> <div class = "container"> 위에 img 태그 <img src =~> 추가

 

 

 

#이미지에 링크 거는 법

<a> 태그로 이미지를 감싸준다.

base.html

<a href="{% url 'home' %}"> <!-- a href="https://~"-->
	<img src="{% static '이미지명.확장자' %}" alt="" width="50" height="50">
</a>

 

'Django' 카테고리의 다른 글

django | Forms  (0) 2021.07.08
django | Media 파일  (0) 2021.07.08
django | template 상속, 앱 분리  (0) 2021.07.07
django | CRUD - Delete  (0) 2021.07.07
django | CRUD - Update  (0) 2021.07.07
Comments