본문 바로가기

Django 템플릿 태그 활용법 총정리

_Big 2025. 5. 14.
반응형

django 로고 이미지


Django로 웹 페이지를 만들어본 적이 있다면 {% for %}{% if %} 같은 템플릿 태그를 사용해보셨을 겁니다. 처음에는 단순해 보일 수 있지만, Django의 템플릿 언어는 제대로 활용하면 굉장히 강력한 기능을 제공합니다. 내장 태그부터 커스텀 태그까지 활용하면 정적인 템플릿을 지능적이고 동적인 구성으로 탈바꿈시킬 수 있습니다.

서론

Django 템플릿 태그는 HTML 템플릿의 로직 계층 역할을 합니다. 루프, 조건부 출력, 컨텍스트 변수 접근, 필터 및 정적 파일 불러오기 등 다양한 기능을 지원하며, 템플릿 내부에 파이썬 코드를 작성하지 않고도 논리적인 처리를 할 수 있습니다.

이 글에서는 자주 사용하는 내장 태그부터 실전 활용 사례, 그리고 고급 기능인 커스텀 태그까지 모두 다뤄봅니다.

1. 꼭 알아야 할 핵심 내장 태그

모든 Django 개발자가 익숙해져야 할 기본 태그는 다음과 같습니다:

  • {% if %} / {% elif %} / {% else %}: 조건 분기
  • {% for item in list %}: 리스트 반복
  • {% include "template.html" %}: 템플릿 재사용
  • {% load static %}: 정적 파일 불러오기 (CSS, JS 등)
  • {% block content %} / {% extends "base.html" %}: 템플릿 상속

예시:

{% if user.is_authenticated %}
  <p>환영합니다, {{ user.username }}님!</p>
{% else %}
  <p>로그인이 필요합니다.</p>
{% endif %}

이러한 태그를 활용하면 컴포넌트를 재사용하고, 템플릿의 흐름을 유연하게 제어할 수 있습니다.

 

2. 필터 및 with 태그 활용

템플릿 필터는 변수를 수정할 때 사용됩니다. 예: {{ name|upper }} 는 텍스트를 대문자로 변환합니다.

유용한 필터 예시:

  • |length, |lower, |date, |default, |truncatechars
  • 필터 조합도 가능: {{ title|truncatechars:30|upper }}

{% with %} 태그는 긴 변수명을 단축해서 코드 가독성을 높여줍니다:

{% with user.profile as profile %}
  {{ profile.bio }}
{% endwith %}

필터와 with 태그를 적절히 사용하면 템플릿을 깔끔하고 읽기 쉽게 유지할 수 있습니다.

 

3. {% url %}과 {% static %}으로 링크 및 정적 파일 처리

Django 템플릿은 URL 라우팅 시스템과 잘 통합되어 있습니다. {% url %}을 사용해 링크를 동적으로 생성할 수 있습니다:

<a href="{% url 'blog:post_detail' post.slug %}">{{ post.title }}</a>

정적 파일(CSS, JS, 이미지 등)은 {% static %}을 사용해 접근하며, 먼저 로드해야 합니다:

{% load static %}
<link rel="stylesheet" href="{% static 'css/styles.css' %}">

경로를 하드코딩하지 않고 {% url %}, {% static %}을 사용하는 습관은 유지보수성과 안정성을 높여줍니다.

 

4. 커스텀 템플릿 태그 만들기

내장 태그만으로 부족할 경우, 커스텀 템플릿 태그를 만들어 복잡한 로직을 처리할 수 있습니다.

앱 안에 templatetags/ 폴더를 만들고 파이썬 파일을 생성합니다:

# myapp/templatetags/extras.py
from django import template
register = template.Library()

@register.simple_tag
def greet(name):
    return f"안녕하세요, {name}!"

템플릿에서 이렇게 불러옵니다:

{% load extras %}
<p>{% greet "Django" %}</p>

커스텀 태그는 포맷팅, 권한 체크, 커스텀 위젯 렌더링 등 반복적인 로직을 깔끔하게 캡슐화할 수 있습니다.

 

5. 템플릿 태그 사용 시 베스트 프랙티스

  • 로직은 최소화: 템플릿은 표현용, 비즈니스 로직은 Python 코드에서 처리
  • block과 extends로 중복 제거
  • 중첩 if 안의 for는 피하거나 최소화
  • 간단한 변환은 복잡한 태그보다 필터 사용
  • {% comment %}를 활용해 디버그용 주석 삽입

구조화된 템플릿은 유지보수가 쉬우며, 프론트엔드와 백엔드의 역할을 명확히 구분해줍니다.

 

마치며

Django 템플릿 태그는 단순하지만 제대로 익히면 프로젝트의 표현력을 획기적으로 높일 수 있습니다. 블로그, 쇼핑몰, 대시보드 등 어떤 프로젝트든, 템플릿 태그를 잘 활용하면 더 깔끔하고 유지보수하기 쉬운 코드를 만들 수 있습니다.

여러분이 가장 자주 사용하는 Django 템플릿 태그는 무엇인가요? 댓글로 공유해 주세요—여러분의 활용법을 듣고 싶습니다!

 

 

Django 모델링: 데이터베이스 설계의 핵심

강력한 웹 애플리케이션은 모두 잘 구조화된 데이터베이스 위에 구축됩니다. Django 세계에서는 데이터를 제대로 모델링하는 것이 모든 것의 출발점입니다—사용자 인터랙션부터 백엔드 처리까

bigadmin.org

 

반응형

댓글