Programing/Python

[django] template 상속

mjune.kim 2019. 4. 11. 07:58

이번에는 template 을 상속받는 방법에 대해 알아보겠습니다.

html에 공통으로 포함되는 layout이나 구문을 부모 템플릿에 정의하고 이를 상속받으면 됩니다.

1. 부모 template 생성("layout.html")

이때 공통으로 사용하지 않는 부분은 block으로 해당 부분을 정의해 놓습니다.

{% block <name> %}{% endblock %}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}{% endblock %}</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>
 

2. 자식 template에서 상속을 정의하고 공통으로 사용되는 부분을 삭제합니다. 이때 상속은 {% extends %} 로 선언하며 부모 템플릿에서 block 으로 정의한 부분에 내용을 추가합니다.

1
2
3
4
5
6
7
8
9
10
{% extends "elections/layout.html" %}
{% block title %}
candidates
{% endblock %}
 
{% block content %}
<div class="container">
 
</div>
{% endblock %}

3. 마지막으로 웹브라우저로 접속해서 화면이 정상적으로 표시되는지 확인을 합니다.