[파이썬][Django] Django 템플릿 언어 (DTL) 기초와 예제
Django 템플릿 언어(Django Template Language, DTL)는 Django 프레임워크에서 HTML 템플릿을 동적으로 렌더링하는 데 사용되는 언어입니다. DTL은 Python 코드와 비슷한 구문을 사용하며, 변수 삽입, 제어 구조 및 필터를 지원하여 템플릿에서 데이터를 효과적으로 처리할 수 있습니다. 아래에서 DTL의 기초와 간단한 예제를 설명하겠습니다.
변수 출력
DTL에서 변수를 출력하려면 `` 형식을 사용합니다. 이 변수는 템플릿 렌더링 시에 해당 변수의 값으로 대체됩니다.
예제:
<pre>
<code>
<!DOCTYPE html>
<html>
<head>
<title>DTL Example</title>
</head>
<body>
<h1>Hello, {{ name }}</h1>
</body>
</html>
</code>
</pre>
제어 구조
DTL은 조건문과 반복문과 같은 제어 구조를 지원합니다. 조건문은 `{% if 조건식 %} ... {% endif %}` 형식을 사용하고, 반복문은 `{% for 변수 in 리스트 %} ... {% endfor %}` 형식을 사용합니다.
예제:
```html
<pre>
<code>
<!DOCTYPE html>
<html>
<head>
<title>DTL Control Structures</title>
</head>
<body>
<h1>Colors</h1>
<ul>
{% for color in colors %}
<li>{{ color }}</li>
{% endfor %}
</ul>
{% if show_message %}
<p>This message is shown because show_message is True.</p>
{% else %}
<p>This message is hidden because show_message is False.</p>
{% endif %}
</body>
</html>
</code>
</pre>
필터
DTL에서는 출력된 변수에 필터를 적용하여 변환할 수 있습니다. 필터는 `` 형식으로 사용합니다.
예제:
<pre>
<code>
<!DOCTYPE html>
<html>
<head>
<title>DTL Filters</title>
</head>
<body>
<h1>Price: {{ price|currency }}</h1>
<p>Today's date: {{ date|date:"Y-m-d" }}</p>
</body>
</html>
</code>
</pre>
주석
주석은 {# 주석 내용 #}
형식을 사용하여 템플릿 코드 내에서 설명을 추가할 수 있습니다. 주석은 템플릿 렌더링 시에 무시됩니다.
예제:
<pre>
<code>
<!DOCTYPE html>
<html>
<head>
<title>DTL Comments</title>
</head>
<body>
<h1>Hello, {{ name }}</h1>
{# This is a comment #}
</body>
</html>
</code>
</pre>
예제 템플릿 렌더링
Python에서 DTL을 사용하여 템플릿 렌더링하려면 Django의 render
함수를 사용합니다. 아래는 예제 템플릿을 렌더링하는 방법입니다:
from django.shortcuts import render
def my_view(request):
context = {
'name': 'John Doe',
'colors': ['Red', 'Green', 'Blue'],
'price': 19.99,
'date': datetime.now(),
'show_message': True,
}
return render(request, 'my_template.html', context)
위의 코드에서 context
변수에 템플릿에서 사용할 데이터를 전달하고, render
함수를 사용하여 템플릿을 렌더링합니다.
DTL은 Django 템플릿 시스템의 강력한 기능 중 하나이며, 동적 웹 페이지 생성 및 데이터 표시에 매우 유용합니다. 필요에 따라 템플릿에서 사용할 데이터를 컨텍스트에 추가하고, 템플릿 파일을 작성하여 원하는 HTML을 생성할 수 있습니다.