Django Template 엔진 활용법
1. Django Template 엔진이란?
Django의 Template 엔진은 HTML 문서에서 동적 데이터를 삽입하고 표시하는 기능을 제공합니다. Django의 Template 시스템을 활용하면 웹 애플리케이션의 프론트엔드를 보다 효율적으로 개발할 수 있습니다. Template 엔진을 사용하면 반복적인 HTML 코드 작성을 줄이고, 코드의 재사용성을 높일 수 있습니다.
Django의 Template 엔진은 templates
폴더를 기반으로 동작하며, render()
함수를 사용하여 데이터를 템플릿에 전달하고 HTML 응답을 생성합니다.
2. Django 프로젝트에서 Template 설정하기
Django에서 Template을 활용하려면 settings.py
파일에서 템플릿 폴더를 설정해야 합니다.
2.1 settings.py
설정
Django 프로젝트를 생성한 후 settings.py
파일을 열고 다음과 같은 설정을 확인합니다.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], # 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'
를 추가하면 프로젝트의 최상위 디렉토리에 templates
폴더를 만들고 사용할 수 있습니다.
3. templates
폴더 구조 및 템플릿 파일 생성
3.1 templates
폴더 생성
프로젝트의 루트 디렉토리에 templates
폴더를 생성합니다.
mkdir templates
이 폴더 내부에 HTML 파일을 생성하여 Django의 View에서 사용할 수 있습니다.
3.2 템플릿 파일 생성
templates
폴더 안에 home.html
파일을 생성하고 다음과 같은 내용을 작성합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>홈 페이지</title>
</head>
<body>
<h1>환영합니다, {{ username }}님!</h1>
<p>이것은 Django Template 엔진을 활용한 예제입니다.</p>
</body>
</html>
위 코드에서 {{ username }}
부분은 Django에서 전달받은 데이터를 출력하는 템플릿 태그입니다.
4. Django View에서 render()
함수 활용하기
Django의 render()
함수는 Template을 렌더링하는 주요 기능을 담당합니다. views.py
에서 템플릿을 사용하려면 render()
함수를 사용하여 HTML 파일을 반환해야 합니다.
4.1 View 함수에서 Template 렌더링
views.py
파일을 열고 다음과 같이 작성합니다.
from django.shortcuts import render
def home(request):
context = {'username': '홍길동'}
return render(request, 'home.html', context)
위 코드에서 render(request, 'home.html', context)
는 home.html
템플릿을 렌더링하고, context
에 담긴 데이터를 전달합니다. 여기서 context
는 딕셔너리 형태로 전달되며, 템플릿 내에서 {{ username }}
으로 데이터를 출력할 수 있습니다.
5. URL 설정하기
Django의 urls.py
에서 View를 연결하여 사용자가 특정 URL로 접속했을 때 템플릿이 렌더링되도록 설정해야 합니다.
5.1 urls.py
설정
urls.py
파일을 열고 다음과 같이 작성합니다.
from django.urls import path
from .views import home
urlpatterns = [
path('', home, name='home'),
]
이제 사용자가 http://127.0.0.1:8000/
으로 접속하면 home.html
이 렌더링됩니다.
6. Django Template 엔진의 기본 문법
Django의 Template 엔진에서는 여러 가지 문법을 제공합니다. 몇 가지 주요 문법을 살펴보겠습니다.
6.1 변수 출력
<p>안녕하세요, {{ username }}님!</p>
{{ 변수명 }}
형식으로 변수를 출력할 수 있습니다.
6.2 조건문 사용
{% if is_authenticated %}
<p>로그인한 사용자입니다.</p>
{% else %}
<p>로그인하지 않은 사용자입니다.</p>
{% endif %}
6.3 반복문 사용
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% for item in items %}
문법을 사용하여 리스트 데이터를 반복 출력할 수 있습니다.
6.4 템플릿 상속
템플릿 상속을 활용하면 공통 레이아웃을 유지하면서 페이지별로 다른 콘텐츠를 추가할 수 있습니다.
base.html
(기본 템플릿)
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>{% block title %}기본 제목{% endblock %}</title>
</head>
<body>
<header>
<h1>웹사이트 제목</h1>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
child.html
(상속 템플릿)
{% extends 'base.html' %}
{% block title %}홈 페이지{% endblock %}
{% block content %}
<p>이것은 상속된 템플릿입니다.</p>
{% endblock %}
위 코드에서 {% extends 'base.html' %}
를 사용하여 base.html
을 상속받고, {% block content %}
부분을 원하는 내용으로 변경할 수 있습니다.
7. 마무리
Django의 Template 엔진을 활용하면 HTML 문서를 동적으로 생성하고 데이터를 손쉽게 전달할 수 있습니다. render()
함수를 사용하여 View에서 템플릿을 렌더링하고, 템플릿 태그를 활용하면 보다 강력한 기능을 구현할 수 있습니다.
이제 Django의 Template 엔진을 활용하여 웹 애플리케이션의 프론트엔드를 보다 효율적으로 개발해보시기 바랍니다!
'Python Django' 카테고리의 다른 글
Django에서 데이터베이스 설정하기 (settings.py에서 DATABASES 설정) (0) | 2025.02.28 |
---|---|
Django ORM(Object-Relational Mapping) 개념 및 사용법 (0) | 2025.02.27 |
Django의 View와 HttpResponse 기본 사용법 (0) | 2025.02.25 |
Django의 URL 라우팅 (urls.py 설정) (0) | 2025.02.24 |
Django의 MTV(Model-Template-View) 패턴 이해하기 (0) | 2025.02.23 |