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%}
'개발 > Django_python 웹 프레임워크' 카테고리의 다른 글
Django 구동원리 : MTV (0) | 2020.07.19 |
---|---|
Django project 4 - url 관리 (0) | 2020.07.16 |
Django-Media파일, 파일 업로드 (2) | 2020.07.15 |
Django-Static, 이미지 넣기, css 적용하기 (0) | 2020.07.15 |
Network] HTTP 패킷 / Get, Post(feat. Django) (1) | 2020.07.15 |
댓글