장고 템플릿은 코드에서 중복되는 템플릿코드를 사전에 저장하고 불러오는 기능을 제공한다
보통 Banner 와 Footer 부분이 대표적으로 코드중복이 자주일어나며 해당 코드를 효과적으로 저장하고 불러와 사용할 수 있다
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<title>Document</title>
</head>
<body>
<div class="container">
<header class="banner row border-bottom justify-content-end">
<ul class="col-3 list-unstyled">
{% if not request.user.is_authenticated %}
<li><a href="{% url 'signup' %}"> 회원가입 </a></li>
<li><a href="{% url 'signin' %}"> 로그인 </a></li>
{% else %}
<li>{{request.user}} 님 안녕하세요</li>
<li><a href="{% url 'signout' %}">로그아웃</a></li>
{% endif %}
</ul>
</header>
<section>
{% block content %}{% endblock %}
</section>
</div>
</body>
</html>
{% block (blockname) %} 과 {% endblock %} 의 쌍으로 block 구획을 나누며
이 block 은 다른 html 파일이 삽입되는 부분이다
뼈대를 base 에서 짜고 detail 은 block 을 통해 다른 html 을 붙이는 형식
{% extends 'study/base.html' %}
{% block content %}
type what you want to insert
{% endblock %}
위와같이 다른 html 에 삽입시킬 base.html 파일을 불러오며
block 안에는 base block 안에 삽입될 내용을 넣으면 된다
block 은 (blockname) 과 1:1 동치되며 blockname 에 따라서 여러가지 block 구획을 나누고 삽입시킬 수 있다