Django 기초 - Settings & Static File 설정

ID짱재·2021년 7월 19일
1

Django

목록 보기
5/43
post-thumbnail

🌈 Settings & Static File 설정

🔥 settings.py 설정

🔥 statice file 이란?


1. settings.py 설정

  • Django 2.xx 버전에서 Django 3.xx 버전으로 업데이트되며 변경된 부분 중 하나는 settings.py에서 os 라이브러리가 제외되고, path 라이브러리가 추가되었어요..! 이에 static 파일의 경로 설정에 있어 다소 차이가 존재합니다:)
  • settgins.py에 있는 settgins값의 의미를 간단하게 정리해보았습니다.

1) BASE_DIR

  • ⭐️ BASE_DIR 는 BASE 디렉토리가 위치한 경로를 의미해요. 프로젝트가 위치한 곳이죠. 모든 경로는 BASE_DIR을 기준으로 설정됩니다.

2) SECRET_KEY

  • ⭐️ SECRET_KEY = ''는 보안 기능을 담당하는 중요한 KEY이기 때문에 노출하면 안됩니다. .gitignore에 추가하여 숨길 수 있습니다.

3) DEBUG

  • ⭐️ DEBUG = True는 현재 개발 모드라는 의미에요,, 개발모드에서는 오류에 대한 상세페이지를 보여줍답니다. 서비스를 할 때에는 DEBUG = False로 수정 후 배포해야 합니다.

4) ALLOWED_HOSTS

  • ⭐️ ALLOWED_HOSTS = ['*'] 는 화이트리스트 기반으로 명시된 사용자(ip)만 접속할 수 있도록 설정한 것이에요. '*'은 모두 가능하단 것이죠.

5) INSTALLED_APPS

  • ⭐️ INSTALLED_APPS = [] 는 프로젝트 내에 생선한 App을 등록해주는 영역이에요. App을 여기에 등록해야지 Django에서 해당 디렉토리를 인식할 수 있답니다.

6) ROOT_URLCONF

  • ⭐️ ROOT_URLCONF = 'djangomtv.urls' 는 Django의 최상위 url 파일을 가르키는 곳으로 현재 프로젝트명이 djangomtv이기 때문에 djangomtv.urls로 자동 설정되 있어요.

7) TEMPLATES

  • ⭐️ TEMPLATES = []는 Django Templates 설정과 관련된 곳으로 'DIRS': []에 경로를 지정해주면, html파일을 별도의 디렉토리에 전부 모아 사용할 수 있어요. 단, 프로젝트 규모가 커지면 앱별로 templates를 관리하는게 보다 효과적일 수 있어요.
    • 🔎 'DIRS': [BASE_DIR / 'templates,],

8) DATABASES

  • ⭐️ DATABASES = {}는 Django에서 사용할 DB를 지정하는 곳이에요,, Django는 Default값으로 sqlite3가 내장되 있어요.

9) AUTH_PASSWORD_VALIDATORS

  • ⭐️ AUTH_PASSWORD_VALIDATORS=[]은 사용자 비밀번호 유효성 검사에 대한 세팅하는 곳입니다.

10) LANGUAGE_CODE

  • ⭐️ LANGUAGE_CODE = 'en-us'는 언어를 설정하는 곳으로 한국어를 원할 경우 'ko-kr'`로 수정해주면 됩니다.

11) TIME_ZONE

  • ⭐️ TIME_ZONE = 'UTC'는 시간대를 설정하는 곳으로 Default값이 'UTC'에요,, 한국 시간은 TIME_ZONE = 'Asia/Seoul'입니다.

2. statice file 이란?

  • settings.py의 Static files은 정적 파일을 관리하는 영역으로 Django에서 img나 css, javascript 파일을 사용하고자 할 때, 이 부분의 설정을 다뤄줘야 해요:)
  • Django2 에서 Django3 버전로 업데이트하면서 os 라이브러리가 settings.py에서 기본적으로 존재하지 않기 때문에 설정 방법은 아래와 같이 2가지 방법이 있어요.

1) os 라이브러리 추가할 때

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
import os # 👈 os 라이브러리 추가
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # 👈 static 경로 추가

2) os 라이브러리 추가하지 않을 때

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR, 'static',] # 👈 static 경로 추가
  • static 파일에 대한 경로를 설정해 주었다면, 'static' 디렉토리를 만들어 그 안에 정적파일을 담아두고 사용하면 됩니다.
  • 🔍 html에서 static 파일 사용하는 방법
    • static 파일을 불러오고자하는 html 파일 최상단에 static 파일을 불러오겠다고 선언
    • static 파일이 들어갈 곳에 템플릿 코드를 사용해 지정함
{% load static %} <!--👈 static 파일을 load하겠다고 선언함 -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>hello Index!</h1>
    <img src="{% static 'sample.jpg' %}" width="600px" alt="sample img" />
    <!-- 👆 템플릿 코드로 명시 -->
    <form action="/" method="POST">
      {% csrf_token %}
      <div><input type="text" name="id" /></div>
      <div><input type="password" name="pw" /></div>
      <div><input type="submit" value="login" /></div>
    </form>
  </body>
</html>

profile
Keep Going, Keep Coding!

0개의 댓글