템플릿 상속
Coddy Django 여정의 Django 기초 섹션에 포함된 레슨. 23개 중 17번째.
home.html과 drinks.html은 각각 동일한 <head>를 반복해서 사용하고, 곧 탐색 메뉴도 반복하게 됩니다. 기본 골격을 바꾸면 모든 파일을 수정해야 합니다. 대신 하나의 템플릿을 기본 골격으로 사용하고 페이지가 그 안을 채우도록 하세요.기본 골격은 페이지가 채울 부분을 {% block %} 태그와 이름으로 표시합니다. 라이브러리의 library/base.html은 다음과 같습니다.
<body>
<nav>...</nav>
<article>{% block body %}{% endblock %}</article>
</body>페이지는 {% extends %}로 시작한 다음 블록을 채웁니다.
{% extends "library/base.html" %}
{% block body %}
<p>We are open until 20:00.</p>
{% endblock %}{% extends %}는 첫 번째 태그여야 합니다. 다른 페이지를 확장하는 페이지에서는 블록 밖의 모든 내용이 버려집니다. 감싸는 것을 잊은 제목은 사라집니다.챌린지
중급base.html에서<main>안에content라는 이름의 빈 블록을 넣으세요.home.html과drinks.html이"menu/base.html"을 확장하고, 해당 블록 안에 각각의 HTML을 넣도록 하세요.
Run을 누르세요. 두 페이지 모두 base.html의 내비게이션을 표시합니다.
직접 해보기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Corner Café</title>
</head>
<body>
<nav>
<a href="{% url 'menu:home' %}">Home</a>
<a href="{% url 'menu:drinks' %}">Drinks</a>
<a href="{% url 'menu:about' %}">About</a>
</nav>
<main>
<!-- each page's content goes here -->
</main>
</body>
</html>
Django 기초의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드