지난 글에서 설명했듯 template은 간단히 설명해 html문서를 보관한 폴더라고 할 수 있다.
django 프로젝트에서 urls.py와 view.py에 작성하는 것으로도 html문서를 출려할 수 있다. 하지만 분류되지 않은 html문서가 길고 복잡해진다면 내용을 수정하거나 추가/삭제하기가 매우 힘들 것이다.
이를 위해 template이란 html문서만 따로 보관하는 폴더를 만들어 연결을 해준다면 관리가 편해진다.^^
template 폴더를 만들고 그 안에 html문서만 담으면 끝이 아니다.
연결을 해서 이 폴더가 html을 담을 폴더라고 연결해서 알려주어야 한다.
먼저 프로젝트 폴더인 config폴더 안으로 들어가 settings.py 파일을 연다. 그리고 그 안에 TEMPLATES 설정이 적힌 부분이 있는데 이 부분을 아래와 같이 수정해준다.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR/'templates'], # 이 곳 수정!!
'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',
],
},
},
]
'DIRS' : [BASE_DIR/''] 부분에서 ''안에 기본 템플릿으로 설정할 폴더 이름을 적어준다. 나는 헷갈리지 않게 templates로 적어주었다.
이 다음 폴더를 생성해 준다.
프로젝트 폴더를 담는 mysite라는 폴더 안에 template을 생성한다.
그리고 이 폴더 안에 관리하기 쉽도록 MTV라는 폴더를 만들고 그 안에 html문서를 집어넣어 준다. ( 문서이름 : index.html )
대충 아래와 같은 파일을 만들어서 넣어주었다.
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Hello~~ I'm index.html page!</h1>
</body>
</html>
URL Patterns 글을 참고하여 프로젝트폴더의 urls.py 에서 app폴더의 urls.py를 연결하고 urls.py에서 다시 해당 app폴더의 views.py로 연결하여 기능을 수행하도록 만들어보자.
(나는 MTV app의 urls.py에서 views.py의 index함수를 수행하도록 설정함!)
이 때 views.py에서 index함수를 아래와 같이 적어준다.
from django.shortcuts import render
def index(request):
return render(request, 'MTV/indexs.html')
여기서 render함수를 이용하여 템플릿의 html문서를 불러온다.
위의 index함수는 요청이 들어오면 template\MTV 폴더안의 index.html을 불러와 브라우저에 출력한다!!
