[Django]settings.py
틈틈히 필요할 때 마다 추가를 하겠다.
settings.py 의 55번째 줄
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
'BACKEND': 'django.template.backends.django.DjangoTemplates', - BTL 엔진 쓴다는 말이다. jinja2로 변경가능하다
'DIRS': [], - 등록된 app이 아닌 다른 곳에서 관리하고 싶다며 추가한다. 앞에서 배운 base.html을 추가하려면 이부분에 경로 설정을 해주어야 한다. 'DIRS': [os.path.join(BASE_DIR, 'templates')] or 'DIRS': [os.path.join(BASE_DIR, '프로젝트이름', 'templates')] 이런식으로 경로에 맞게 적어주면 된다. 이 때 BASE_DIR은 가장 상위 위치(manage.py가 있는곳)라고 생각하면된다.
'APP_DIRS': True, - INSTALLED_APPS에 정의(등록)된 APP들의 디렉토리 중에 Templates를 모아서 관리하겠다는 의미이다. 즉, app폴더 안의 templates 폴더 안의 html 파일들을 렌더가 가능하게 한다.
'OPTIONS': {
'context_processors': [
context를 처리할 때 아래의 4가지를 쓸 수 있게 만들어 놨다.
'django.template.context_processors.debug',
'django.template.context_processors.request',
이 내용 떄문에 html에 자동으로 context에 request가 담겨서 넘어가기 때문에 html에서 import로 불러 오는 것 없이 사용 가능하다.
'django.contrib.auth.context_processors.auth',
유저와 관련된 정보를 쓸 수 있게 만들어 놨다. 따라서 html에서 import 없이 user.is~~~와 같이 user을 만들 수 있게 되었다.
'django.contrib.messages.context_processors.messages',
이 부분 때문에 messages를 import 없이 사용가능하다. alert부분 참고
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
form태그에서 POST로 보낼 때, 해킹을 방기하기위한 {% csrf_token %}관련 기능을 수행한다.
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
message framework 부분
'django.middleware.clickjacking.XFrameOptionsMiddleware',