본문 바로가기
Languages/Python

[Django] Template extending - Djangogirls

by 김크롱 2020. 7. 31.

템플릿 확장

 : 웹사이트 안의 서로 다른 페이지에서 HTML의 일부를 동일하게 재사용 가능

 - 같은 정보/레이아웃을 쓰고자 할 때 모든 파일마다 같은 내용을 반복해서 입력할 필요없음

 - 수정할 부분이 생겼을 때 한번만 수정하면 됨

 

 

blog/templates/blog/base.html

 : 레이아웃이 될 파일

 - base.html 생성

{% load static %}
<html>
    <head>
        <title>Blog Name</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link href='//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="{% static 'css/blog.css' %}">
    </head>
    <body>
        <div class="page-header">
            <h1><a href="/">Blog Name</a></h1>
        </div>

        <div class="content container">
            <div class="row">
                <div class="col-md-8">
                {% for post in posts %}
                {% endfor %}
                </div>
            </div>
        </div>
    </body>
</html>

 

 

blog/templates/blog/post_list.html

: 레이아웃인 base.html 에 들어갈 부분만 작성

{% extends 'blog/base.html' %}

{% block content %}
    {% for post in posts %}
        <div class="post">
            <div class="date">
                {{ post.published_date }}
            </div>
            <h1><a href="">{{ post.title }}</a></h1>
            <p>{{ post.text|linebreaksbr }}</p>
        </div>
    {% endfor %}
{% endblock %}

 

base.html의

   {% for post in posts %}
   {% endfor %}

 

post_list.html의

    {% block content %}

        ..

    {% endblock %}

안의 내용이 적용됨

 

 

 

 

 

https://tutorial.djangogirls.org/ko/template_extending/

 

템플릿 확장하기 · HonKit

장고의 또 다른 멋진 기능은 템플릿 확장(template extending) 입니다. 무슨 뜻일까요? 바로 여러분의 웹사이트 안의 서로 다른 페이지에서 HTML의 일부를 동일하게 재사용 할 수 있다는 뜻이에요. 이 ��

tutorial.djangogirls.org