1번째 줄: |
1번째 줄: |
| | | |
| ==개요== | | ==개요== |
| + | 커다란 틀은 전체 페이지에서 공유하고, 내용물만 바꾸어야 할 때, 전체 틀을 그대로 사용하는 게 편하다. |
| + | |
| =상속= | | =상속= |
| 코드를 매번 다시 치는 게 아니라, 재사용하고, 일관적인 형태를 유지하며, 편집의 용이함을 위하여 사용한다. 만약 메뉴바를 각 페이지마다 구현했는데, 디자인을 바꿔야 한다면...? 수많은 페이지들을 일일이 수정해주어야 하는 대참사가 일어난다; 메뉴바 등 틀은 한 파일에서 만들어주고, 내용만 고치는 편이 관리에 유리하다. | | 코드를 매번 다시 치는 게 아니라, 재사용하고, 일관적인 형태를 유지하며, 편집의 용이함을 위하여 사용한다. 만약 메뉴바를 각 페이지마다 구현했는데, 디자인을 바꿔야 한다면...? 수많은 페이지들을 일일이 수정해주어야 하는 대참사가 일어난다; 메뉴바 등 틀은 한 파일에서 만들어주고, 내용만 고치는 편이 관리에 유리하다. |
| | | |
| 일반적인 함수의 상속과는 달리 확장이라고 생각해야 한다. | | 일반적인 함수의 상속과는 달리 확장이라고 생각해야 한다. |
| + | |
| + | 다른 탬플릿을 넣을 공간을 지정한 후, 다른 탬플릿에서 부모 탬플릿을 상속받아 사용한다. |
| | | |
| === 방법 === | | === 방법 === |
10번째 줄: |
14번째 줄: |
| *{% block 블록명 %} {% endblock %} 형태로 여러 곳에 블록을 둘 수 있다. 가독성을 위해 {% endblock 블록이름 %} 형태로 닫기도 한다. | | *{% block 블록명 %} {% endblock %} 형태로 여러 곳에 블록을 둘 수 있다. 가독성을 위해 {% endblock 블록이름 %} 형태로 닫기도 한다. |
| *자식템플릿에선 그 블록을 다 채우지 않아도 된다. | | *자식템플릿에선 그 블록을 다 채우지 않아도 된다. |
− |
| |
| | | |
| 일반적으로 사이트 전체의 룩엔필을 위하여 3단계 상속을 권장한다. | | 일반적으로 사이트 전체의 룩엔필을 위하여 3단계 상속을 권장한다. |
− | #사이트 전체의 룩앤필을 담는 base.html 네비게이션바나 전체 페이지에서 보여져야 할 내용들이 담긴다. | + | #사이트 전체의 룩앤필을 담는 base.html. 네비게이션바나 전체 페이지에서 보여져야 할 내용들이 담긴다. |
− | #하위의 섹션별 스타일을 담는 섹션별 html | + | #하위의 섹션별 스타일을 담는 섹션별 html. |
| #개별 페이지에 대한 템플릿. | | #개별 페이지에 대한 템플릿. |
− | #3에 포함될 하위기능들. | + | #3에 포함될 하위기능들.(부록) |
| {| class="wikitable" | | {| class="wikitable" |
| |+ | | |+ |
35번째 줄: |
38번째 줄: |
| <!-- 각 앱의 CSS. 앱의 CSS를 먼저 뒤지고 상위의 CSS를 찾는다. --> | | <!-- 각 앱의 CSS. 앱의 CSS를 먼저 뒤지고 상위의 CSS를 찾는다. --> |
| <link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"> | | <link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"> |
− | {% block title %}{% endblock title %} | + | {% block title %}부모탬플릿 내용. 상속할 땐 안나타난다.{% endblock title %} |
| </head> | | </head> |
| <body> | | <body> |
42번째 줄: |
45번째 줄: |
| </html> | | </html> |
| </syntaxhighlight>블록 태그 사이에 뭘 써넣으면, 자식탬플릿으로부터 가져올 것이 없을 때 그걸 보여준다. | | </syntaxhighlight>블록 태그 사이에 뭘 써넣으면, 자식탬플릿으로부터 가져올 것이 없을 때 그걸 보여준다. |
− | 자식탬플릿의 내용이 있는데, 부모탬플릿의 내용을 그대로 쓰고 싶다면 적당한 곳에 <nowiki>{{block.super}}</nowiki>를 넣는다. | + | 자식탬플릿의 내용이 있는데 부모탬플릿의 내용을 그대로 쓰고 싶다면 적당한 곳에 <nowiki>{{block.super}}</nowiki>를 넣는다. |
| |- | | |- |
| |자식탬플릿 만들기 | | |자식탬플릿 만들기 |