[파이썬] Django의 템플릿 상속과 확장

Django에서 템플릿 상속과 확장은 웹 애플리케이션 개발에서 반복되는 작업을 최소화하고 코드의 재사용성을 높이는데 도움을 줍니다. 이 기능을 사용하면 기본 템플릿을 만들고 필요에 따라 해당 기본 템플릿을 확장하여 수정할 수 있습니다. 이를 통해 일관된 디자인과 구조를 유지하면서 필요한 변경사항을 쉽게 반영할 수 있습니다.

기본 템플릿 생성하기

먼저, 기본 템플릿을 생성해야 합니다. 이 템플릿은 다른 템플릿에서 확장되거나 상속받을 부모 템플릿입니다. 아래는 기본 템플릿의 예시입니다.


<!DOCTYPE html>
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <nav>
        <!-- 네비게이션 메뉴 -->
    </nav>
    
    <div id="content">
        {% block content %}
        <!-- 기본 템플릿 내용 -->
        {% endblock %}
    </div>
    
    <footer>
        <!-- 푸터 내용 -->
    </footer>
</body>
</html>

위 예시에서 {% block %} 태그는 템플릿의 특정 부분을 나타내며 자식 템플릿에서 이 부분을 확장하거나 수정할 수 있도록 허용합니다.

자식 템플릿 확장하기

부모 템플릿을 생성한 후, 자식 템플릿에서 이를 확장할 수 있습니다. 아래는 자식 템플릿의 예시입니다.


{% extends "base.html" %}

{% block title %}Custom Title{% endblock %}

{% block content %}
    <!-- 자식 템플릿 내용 -->
{% endblock %}

자식 템플릿에서는 {% extends %} 태그를 사용하여 부모 템플릿을 지정합니다. 이후, 필요한 부분을 {% block %} 태그를 활용하여 재정의할 수 있습니다.

위 예시에서는 {% block title %}을 재정의하여 원하는 제목을 사용하였고, {% block content %}를 활용하여 자식 템플릿의 고유한 내용을 추가하였습니다.

템플릿 확장의 장점

템플릿 상속과 확장을 사용함으로써 다음과 같은 장점을 얻을 수 있습니다.

Django의 템플릿 상속과 확장 기능을 활용하면 웹 애플리케이션의 템플릿 개발을 효율적이고 일관된 방식으로 진행할 수 있습니다. 이를 통해 개발자는 코드의 반복을 줄이고 유지보수성을 향상시킬 수 있습니다.