Django-static

mseo39·2021년 1월 21일
1

django

목록 보기
2/7
post-thumbnail

📚likelion 8th의 django 강의 필기

📑Django

static file이란?

이미지나 css, js 파일처럼 내용이 고정되어 있어 응답을 할 때 파일 그대로를 보내주면 되는 파일
이게 무슨 뜻인지 잘 몰라도 된다 나중에 실습하면 아 이게 이런 뜻이었구나를 자연스럽게 알게 될 것

  • static: 웹 서비스를 위해, 개발자가 준비해두는 파일
  • media: 웹 서비스 이용자들이 업로드하는 파일

static file 처리하기

1. static 폴더 생성

👉python manage.py startapp <앱이름> 명령어를 이용해 만든 앱 폴더에
static 폴더를 생성(참고로 나는 main이라는 이름의 앱을 만들었다.)
👉static 폴더 안에 css폴더(css파일 모음)와 images폴더(사진 모음)를 생성

2. settings.py에 static 설정

👉django-admin startproject <프로젝트이름> 명령어를 이용해 만든
프로젝트 폴더에 있는 setting.py에 작성하면 된다.
(참고로 나는 dreamary라는 이름의 프로젝트를 만들었다.)
✍
import os

STATIC_URL = '/static/'

#static 파일들이 들어있는 경로
#main이라는 앱폴더 안에 있는 static폴더에 static 파일들을 저장했다는 것을 알려준다
STATIC_DIRS =[
    os.path.join(BASE_DIR, 'main', 'static') 
]

#static 파일을 모을 디렉터리
#static폴더에 static 파일을 모을 것임을 알려준다
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

3. static 파일 모으기

✍
python manage.py collectstatic

👉아래 사진을 보면 main폴더 말고 dreamary폴더 안에 static폴더가 생긴 것을 확인 할 수 있다

python manage.py collectstatic 명령어를 함으로써

STATIC_DIRS =[
    os.path.join(BASE_DIR, 'main', 'static') 
] 👉 main폴더에 있는 static 파일들을

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
👉 dreamary폴더에 static폴더를 생성 후 이곳에 static 파일들을 모으는 것이다.

4. html에 static 파일 사용

👉html파일 맨 위에
{%load static%} 작성

👉이미지를 사용하고자 한다면
<img src="{% static 'images/<이미지 이름>'%}">
예시)
<img src="{% static 'images/dreamary_logo.jpeg'%}" alt="dreamary_logo.jpeg">

👉css파일을 사용하고자 한다면
<link rel="stylesheet" href="{% static 'css/<css파일 이름>' %}">
예시)
<link rel="stylesheet" href="{% static 'css/home.css' %}">

media 처리하기

1. settings.py에 MEDIA 설정

👉settings.py에 작성

✍
import os

MEDIA_ROOT= os.path.join(BASE_DIR,'media')

MEDIA_URL = '/media/'

2. 모델 생성

👉models.py에 작성
  upload_to - 사진을 저장할 폴더이름

✍
class pictures(models.Model):
    image= models.ImageField(upload_to="blogimg")

3. pillow 설치하기

👉터미널에 명령어 작성

✍
pip install pillow

4. urls.py

👉urls.py에 작성

✍
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
   
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
profile
하루하루 성실하게

0개의 댓글