본문 바로가기

💻 Deep Wide Programming/Django

Django Templates

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
반응형