반응형
Django는 템플릿을 상속시킬 수 있는 기능을 가지고 있다. 템플릿 상속의 장점은
- 템플릿 코드를 재사용할 수 있다
- 사이트의 룩 앤 필을 일관성있게 보여줄수 있다
와 같은 장점들이 있다. 부모 템플릿은 뼈대를 만들고, {% block %}태그를 통해 하위로 상속해줄 부분을 지정해 주면, 자식 템플릿은 부모 템플릿의 뼈대를 그대로 재사용하고 {% block %}부분만 채워주면 된다. 채워줄때는 부모 템플릿에서 지정한 블럭 이름을 block 옆에 붙여 채우고자 하는 블럭을 지정해주면 된다.
<!-- parent.html -->
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}My site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href={% url 'polls:index' %}>Home</a></li>
</ul>
{% endblock %}
</div>
<div>
{% block content %}
{% endblock %}
</div>
</body>
</html>
<!-- child.html -->
{% extends "inheritTest/parent.html" %}
{% block title %}Title from child.html{% endblock %}
{% block content %}
{% for i in testSequence%}
<h2>{{ i }}</h2>
{% endfor %}
{% endblock %}
parent.html에 보면 {% block %}태그가 3개가 있지만, child.html에는 두개의 {% block %}태그만 있다. 이와 같이 {% block %}태그를 모두 채워줄 필요가 없다. 만약 채워지지 않은 블럭이 있다면, 해당 블럭은 부모 템플릿의 내용을 그대로 사용한다.
반응형
'Back-End > Python Django' 카테고리의 다른 글
[django] 클래스형 뷰 (0) | 2022.03.01 |
---|---|
[Django] form클래스로 폼 생성하기 (0) | 2022.02.22 |
[Django][django template] 템플릿 시스템 (0) | 2022.02.18 |
[Django][django shell] 장고 파이썬 쉘로 데이터 조작하기 (0) | 2022.02.18 |
[Django] [admin page] 장고 어드민 페이지 title 변경하기 (0) | 2022.02.18 |