Django/기초

[Django] 장고 입문 6. 템플릿 상속(Templates 상속, base.html)

민돌v 2021. 6. 13. 23:17

1. Templates 상속

템플릿 상속이란,

html 화면 상 계속해서 중복되는 부분을 별도의 .html 분류하여 1번만 작성하고 계속해서 재사용하는 아주 편리한 기능이다.

- 주로 base.html로 이름을 정하고,

베너(header)나 footer부분, 전체적인 틀을 정의한다.

< 작성 절차>

base.html

1. 먼저 tempaltes.html 안에 base.html 파일을 생성한다.

2. base.html이 뼈대가 되어 재사용 되어진다.

3. 컨텐츠를 채워놓을 공간을 content 블럭으로 구분한다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
  	<div class="navbar">
      이부분이 모든 페이지에 공통으로 들어갈 요소
  	</div>
    {% block content %} 
  		{% comment %} base.html을 상속한 템플릿에서 구현해야 하는 영역 {% endcomment %}
    {% endblock %}
</body>
</html>

 

 

home.html

1. base.html을 상속받는다.

{% extends 'base.html' %}

2. 상속에 들어갈 내용은

{% block contnent %}

{% endblock %}

안에 적는다.

{% extends 'base.html' %}
<br>
{% block content %}

<h3> 여기는 홈 화면 템플릿 변수를 이용해 화면에 출력했지롱 </h3>

{% for d in designer %}
    <div>
    {% if d.image %}
        <img src = '{{ d.image.url }}' hegiht = 150 width = 150>
    {% endif %}
    </div>

    <div>
    <h5>{{ d.name }} </h5>
    <h5>{{ d.adress }} </h5>
    <h5>{{ d.description }} </h5>
    
    
{% endfor %}
{% endblock %}

이런식으로 나타난다!! 야호~!