[python] Django 템플릿 상속 기능 사용하기

Django는 템플릿 상속 기능을 제공하여 효율적인 웹 페이지 개발을 가능하게 합니다. 이 기능을 사용하면 코드의 중복을 피하고 일관된 디자인을 갖춘 웹 페이지를 구축할 수 있습니다. 이 포스트에서는 Django의 템플릿 상속 기능을 사용하는 방법을 알아보겠습니다.

템플릿 상속이란?

템플릿 상속은 Django에서 기본 템플릿을 확장하고 이를 기반으로 새로운 템플릿을 만드는 기능입니다. 이를 통해 기본 템플릿의 구조와 디자인을 공통으로 유지하면서, 특정 페이지에 필요한 내용을 추가하거나 변경할 수 있습니다.

템플릿 상속 사용 방법

기본 템플릿 작성

먼저, 기본 템플릿을 작성해야 합니다. 이 템플릿은 모든 페이지에서 공통으로 사용되는 요소들을 포함하고 있습니다. 여기에는 헤더, 푸터, 메뉴 등이 포함될 수 있습니다.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <header>
        <h1>Site Title</h1>
    </header>
    <nav>
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/about/">About</a></li>
        </ul>
    </nav>
    <main>
        {% block content %}Default Content{% endblock %}
    </main>
    <footer>
        <p>&copy; 2023 My Site</p>
    </footer>
</body>
</html>

위 코드에서 {% block %} 템플릿 태그를 사용하여 템플릿에서 오버라이드할 수 있는 블록들을 정의합니다.

파생 템플릿 작성

이제, 기본 템플릿을 상속하여 파생 템플릿을 작성할 차례입니다. 파생 템플릿은 기본 템플릿을 확장하고 일부 내용을 추가하거나 변경할 수 있습니다.


{% extends "base.html" %}

{% block title %}About Us{% endblock %}

{% block content %}
    <h2>About Us</h2>
    <p>This is the about page content.</p>
{% endblock %}

위의 코드에서 {% extends "base.html" %}는 기본 템플릿을 상속한다는 것을 의미하고, {% block %} 템플릿 태그를 사용하여 해당 블록을 오버라이드합니다.

결론

Django의 템플릿 상속 기능을 사용하면 웹 페이지의 일관된 디자인을 유지하면서 코드를 재사용할 수 있습니다. 이를 통해 효율적인 웹 페이지 개발이 가능해지며, 유지보수에도 큰 도움이 됩니다.

템플릿 상속에 대한 더 자세한 내용은 Django 공식 문서를 참고하시기 바랍니다.