본문 바로가기
개발/Django_python 웹 프레임워크

Django 템플릿관리, 상속

by 자유로운 코끼리 2020. 7. 16.
728x90

Html상에서 겹치는 내용을 각 hmtl마다 복붙해줘야 하는걸까요?

 

 

템플릿 상속

이를 위해 템플릿 상속이라느 개념이 존재합니다.

이는 코드를 재사용하고, 일관된 UI 를 구성하고 변경하는 것을 편하게 도와주는데요.

 

1. 프로젝트 폴더에 'templates' 폴더 만든 후, base.html 만들기

2. setting.py에 base.html 위치 알리기

DIRS에 방금 만든 templates의 위치를 알려줍니다.

이는 템플릿 경로를 추가하여 알려주는 작업입니다.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['Blog/templates'],
        'APP_DIRS': True,

3. 중복되는 내용 base.html에 넣기

#base.html

<body>
<!--중복되는 내용 넣기-->
    
    {% block contents %}
    {%endblock%}
    
</body>   

{% block contents %}

{%endblock%}

이 태그 안에 내용이 가져오게 될 거라는 것을 선언해준것입니다.

 

4. 사용하고자 하는 html에 겹치는 내용 삭제 후, base.html 부르기

 

상단에 base.html을 불러와줍니다.

이 extends 태그는 우선순위가 가장 높게 책정됩니다.

{% extends 'base.html '%}

그리고는 base.html에 넣어줄 content라는 것을 알려주기 위해

사용하고자 하는 html에서 해당 코드들을

block 템플릿 태그로 감싸줍니다.

{%block contents%}
<!--들어갈 내용-->
{%endblock%}

댓글