[Django] extends와 include
2023. 7. 26. 13:10
Django 템플릿 시스템에서 사용되는 두 가지 기능을 정리하고자 한다.
💡 extends
extends는 장고의 템플릿 상속 기능을 나타낸다.
이 기능을 사용하면 기본 템플릿(부모 템플릿)을 만들고,
이를 확장하여 추가적인 내용을 포함하는 템플릿(자식 템플릿)을 만들 수 있다.
이를 통해 템플릿의 재사용성을 높이고 코드의 중복을 방지할 수 있다.
<!-- 부모 템플릿 -->
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}기본 제목{% endblock %}</title>
</head>
<body>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
<!-- 자식 템플릿 -->
{% extends "base.html" %}
{% block title %}확장된 제목{% endblock %}
{% block content %}
<h1>확장 템플릿</h1>
<p>기본 템플릿을 확장한 내용</p>
{% endblock %}
자식 템플릿은 extends를 사용해 기본 템플릿을 상속하고,
{% block %} 태그를 통해 기본 템플릿의 블록을 재정의하거나 새로운 블록을 추가할 수 있다.
💡 include
include는 다른 템플릿 파일을 현재 템플릿에 포함시키는 기능이다.
이를 사용해 템플릿 파일의 재사용성을 높일 수 있으며,
특정 부분을 별도의 템플릿 파일로 분리하여 코드를 조직화할 수 있다.
예를 들어, 반복되는 HTML 코드를 별도의 템플릿 파일로 분리하고,
여러 곳에서 이를 재사용하고자 할 때 사용할 수 있다.
<!-- 반복되는 템플릿 파일 (sub_template.html) -->
<div class="item">
<h2>{{ title }}</h2>
<p>{{ content }}</p>
</div>
<!-- 메인 템플릿 파일 -->
<!DOCTYPE html>
<html>
<head>
<title>메인 페이지</title>
</head>
<body>
<div class="container">
{% for item in items %}
{% include 'sub_template.html' with title=item.title content=item.content %}
{% endfor %}
</div>
</body>
</html>
include는 {% include %} 태그를 사용하여 다른 템플릿 파일을 포함하며,
필요에 따라 추가적인 데이터를 넘겨줄 수도 있다.
'WebFramework > [Django]' 카테고리의 다른 글
| [Django] APIView CRUD 예제 코드 (0) | 2023.08.23 |
|---|---|
| [Django] Serializer에 List 정의하기 (0) | 2023.08.23 |
| [Django] Class Based View, Funtion Based View (0) | 2023.07.24 |
| [Django] docker-Django 접속하기 (0) | 2023.07.11 |