템플릿 상속을 통해서 템플릿 코드를 재사용 할 수 있다. 부모 템플릿은 템플릿의 뼈대를 만들어주고 {% block %} 태그를 통해 하위로 상속해줄 부분을 지정해주면, 자식 템플릿은 부모 템플릿의 뼈대는 그대로 재사용하고 이 때는 {% extends "부모 템플릿.html" %} 태그를 사용하고 {% block %} 부분만 채워주면 된다.
block.super는 부모 그대로 사용한다는 의미이다.
- base.html
<!-- base.html -->
<!DOCTYPE html>
<html lang="en">
<head>
{# {% load static %} #}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
<title>{% block title %}My Amazing Site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Project_Home</a></li>
<li><a href="/admin/">Admin</a></li>
</ul>
{% endblock %}
<br>
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
- base_books.html
<!-- base_books.html -->
{% extends "base.html" %}
{% block title %}Books Application Site{% endblock %}
{% block sidebar %}
{{ block.super }}
<ul>
<li><a href="/books/">Books_Home</a></li>
</ul>
{% endblock %}
- index.html
<!-- book/index.html -->
{% extends "base_books.html" %}
{% block content %}
<h2>Books Management System</h2>
<ul>
{% for modelname in model_list %}
{% with "books:"|add:modelname|lower|add:"_list" as urlvar %}
<li><a href="{% url urlvar %}">{{ modelname }}</a></li>
{% endwith %}
{% endfor %}
</ul>
{% endblock content %}
-결과 화면

출처: 한빛미디어, Django로 배우는 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍
'Django' 카테고리의 다른 글
| 15. apps.py 활용 맛보기 - 앱 이름 하드코딩 개선하기 (0) | 2021.04.10 |
|---|---|
| 14. 폼 클래스 (0) | 2021.04.08 |
| 12. Template 주석, HTML 이스케이프 (0) | 2021.04.08 |
| 11. Template Tag(템플릿 태그) (0) | 2021.04.08 |
| 10. Template 구성 - 파일 구조, 템플릿 필터 (0) | 2021.04.08 |