728x90
반응형
1. 반복되는 html 구조가 있다면, templates 폴더를 생성해주고, 그 안에 base.html을 만든다.
1-2. 그리고 해당 코드를 다른 파일에서 extend해서 사용해준다. 마치 부모-자식 클래스처럼.
예를 들어, home.html이 있다면 해당 html의 최상단에 다음의 코드를 입력해주는 것이다.
{% extends "base.html" %}
그러면, base.html에서 만든 html 코드를 가져오게 된다.
2. 나아가, 해당 html안에다가 원하는 코드를 주입할 수도 있다. 다시 말해, home.html이라는 자식 템플릿이 base.html이라는 부모 템플릿에 원하는 코드를 집어넣을 수 있게 되는 것이다. 바로, block을 이용해서 가능하다.
부모템플릿인 base.html에 block코드를 삽입한다.
{% block content %}
{% endblock %}
그리고 다시 home.html로 돌아와서 다음과 같이 부모템플릿에 적어준 block을 사용해준다.
{% extends "base.html" %}
{% block content%}
//base.html에 주입하고 싶은 코드를 쓴다//
{% endblock content %}
이 block은 만들고싶은 대로 다양하게 만들 수 있다. 만약 base.html에서 다음과 같이 page name 블럭을 만들었다면,
<title>{% block page_name %}{% endblock page_name %} | Nbnb</title>
home.html에서
{% block page_name %}
Home
{% endblock page_name %}
이런식으로 사용할 수 있다. 여기서 기억해야할 것은, 블럭을 사용하려면, 맨 상단에 extends를 해줘야 한다는 점!
728x90
반응형
'💻 Deep Wide Programming > Django' 카테고리의 다른 글
Django Admin 커스터마이징 하기 (0) | 2021.02.17 |
---|---|
Django 전반부 정리 & 복습 (0) | 2020.12.18 |
장고 공부에 도움되는 사이트 링크 & 장고 템플릿 언어 (0) | 2020.12.17 |
[⛺️Django] MORE about ADMINS + a #학습메모 (0) | 2020.11.15 |
[⛺️Django] MODELS AND QUERYSETS 메모 (0) | 2020.11.11 |