바뀜

327 바이트 추가됨 ,  2021년 5월 25일 (화) 18:58
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>를 넣는다.
 
|-
 
|-
 
|자식탬플릿 만들기
 
|자식탬플릿 만들기