[파이썬] Django 템플릿 언어의 활용

Django 템플릿 언어는 Django 프레임워크에서 많이 사용되는 템플릿 언어로, 웹 애플리케이션의 동적인 부분을 표현할 수 있습니다. 이번 블로그 포스트에서는 Django 템플릿 언어의 몇 가지 주요 기능과 활용 예시를 살펴보겠습니다.

변수 사용하기

Django 템플릿 언어는 중괄호({{ }})를 사용하여 변수를 표현합니다. 변수를 템플릿에 주입하여 동적인 콘텐츠를 생성할 수 있습니다. 예를 들어, name 변수를 사용하여 인사말을 출력하는 템플릿을 작성해보겠습니다.


<h1>안녕하세요, {{ name }}님!</h1>

위의 예제 코드에서 {{ name }}name 변수의 값으로 대체되어 실제 화면에 출력됩니다. 이렇게 템플릿에 변수를 사용하여 조작 가능한 동적 콘텐츠를 생성할 수 있습니다.

조건문과 반복문 활용하기

Django 템플릿 언어는 {\% \%}를 사용하여 조건문과 반복문을 작성할 수 있습니다. 조건문은 특정 조건이 참인 경우에만 특정 코드 블록을 실행하고, 반복문은 특정 코드 블록을 여러 번 실행합니다.


{\% if user.is_authenticated \%}
    <p>로그인되었습니다.</p>
{\% else \%}
    <p>로그인되지 않았습니다.</p>
{\% endif \%}

<ul>
{\% for item in items \%}
    <li>{{ item }}</li>
{\% endfor \%}
</ul>

위의 예제 코드에서는 user 객체의 is_authenticated 속성에 따라 로그인 상태를 판단하고, items 리스트의 각 요소를 리스트로 출력하는 것을 볼 수 있습니다. 조건문과 반복문을 통해 템플릿에서 다양한 로직을 제어할 수 있습니다.

필터 사용하기

Django 템플릿 언어는 {{ }} 안에서 |를 사용하여 필터를 적용할 수 있습니다. 필터는 데이터를 일정한 형식으로 변환하거나, 특정 조건에 맞게 처리하는 등의 역할을 수행합니다.


{{ value|default:"기본값" }}
{{ value|length }}
{{ value|lower }}
{{ value|date:"Y년 m월 d일" }}

위의 예제 코드에서는 default 필터를 사용하여 value 변수가 비어있는 경우에 기본값을 출력하도록 처리하고, length 필터를 사용하여 문자열의 길이를 출력하고 있습니다. 필터는 다양한 작업을 수행할 수 있으며, 필요에 따라 커스텀 필터도 작성할 수 있는 장점이 있습니다.

상속과 블록 사용하기

Django 템플릿 언어는 템플릿 상속을 지원하여 코드의 재사용성을 높일 수 있습니다. 기본 템플릿을 만들고, 이를 상속하여 서브 템플릿을 작성할 수 있습니다. 상속된 템플릿에서는 부모 템플릿에서 정의한 블록을 오버라이딩하거나 확장할 수 있습니다.

<!-- base.html -->
<html>
<head>
    <title>{\% block title \%}기본 제목{\% endblock \%}</title>
</head>
<body>
{\% block content \%}기본 컨텐츠{\% endblock \%}
</body>
</html>

<!-- child.html -->
{\% extends "base.html" \%}

{\% block title \%}상속된 제목{\% endblock \%}

{\% block content \%}
    상속된 컨텐츠
{\% endblock \%}

위의 예제 코드에서는 base.html 템플릿을 상속하는 child.html 템플릿을 작성하고 있습니다. base.html에서 정의한 블록을 child.html에서 오버라이딩하여 새로운 내용을 출력하고 있습니다. 이를 통해 템플릿끼리의 재사용성을 높일 수 있으며, 유지보수도 용이해집니다.

마무리

이번 포스트에서는 Django 템플릿 언어의 주요 기능과 활용 예시를 살펴보았습니다. 템플릿 언어는 Django 프레임워크에서 웹 애플리케이션의 동적인 부분을 표현하기 위해 매우 유용한 도구입니다. 다양한 기능을 활용하여 보다 유연하고 동적인 웹 애플리케이션을 개발하는 데에 활용해보시기 바랍니다.