🔥 settings.py 설정
🔥 statice file 이란?
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'
입니다.
- 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>