Django 템플릿은 extends 및 include 태그를 상속합니다.
1, include 태그
템플릿 불러오기 메커니즘을 설명한 후에 이 메커니즘을 이용한 내장 템플릿 탭을 소개합니다: {% include%}.이 탭을 사용하면 (템플릿에) 다른 템플릿의 내용을 포함할 수 있습니다.탭의 매개 변수는 포함할 템플릿 이름입니다. 변수일 수도 있고, 단일/더블 인덱스로 하드코딩된 문자열일 수도 있습니다.여러 템플릿에 같은 코드가 나타날 때마다 중복을 줄이기 위해 {% include%}를 사용해야 하는지 고려해야 합니다.
아래의 두 가지 예는 모두nav를 포함하고 있다.html 템플릿.이 두 가지 예는 등가인데, 그것들은 단일/더블 따옴표가 모두 허용된다는 것을 증명한다.
1
{
%
include
'nav.html'
%
}
2
{
%
include
"nav.html"
%
}
아래의 예는includes/nav를 포함한다.html 템플릿의 내용:
1
{
%
include
'includes/nav.html'
%
}
다음 예는 변수template 를 포함합니다name 값은 이름의 템플릿 내용입니다.
1
{
%
include template_name
%
}
즉, 불러오는 템플릿 이름은view층에서 정의할 수 있습니다.
gettemplate () 와 마찬가지로 템플릿의 파일 이름을 판단할 때, 호출된 템플릿 이름 앞에 TEMPLATEDIRS의 템플릿 디렉토리입니다.
포함된 템플릿이 실행될 때 context는 템플릿을 포함하는 템플릿과 같습니다.예를 들어 다음 두 개의 템플릿 파일을 고려합니다.
01
# mypage.html
02
03
<html>
04
<body>
05
{
%
include
"includes/nav.html"
%
}
06
<h1>{{ title }}<
/
h1>
07
<
/
body>
08
<
/
html>
09
10
# includes/nav.html
11
12
<div
id
=
"nav"
>
13
You are
in
: {{ current_section }}
14
<
/
div>
만약current을 포함하는 것을 사용한다면섹션의 상하문에서 mypage를 렌더링합니다.html 이 템플릿 파일, 이 변수는 당신이 상상하는 것처럼 포함(include) 템플릿에 존재합니다.
{% include%} 태그에 지정된 템플릿을 찾을 수 없는 경우 Django는 다음 두 가지 프로세스 중 하나를 선택합니다.
extends
include 역방향 extends
1. 기초 템플릿을 정의하고 html 내용에서 여러 개의 Block 블록을 정의한다. Block은 하위 템플릿에서 같은 이름의 Block 블록을 인용하여 이 부분을 바꿀지 여부를 결정한다.
{% block title %} , {% endblock %}
{% block content %} , {% endblock %}
{% block footer %} , {% endblock %}
여기에서 title content footer는 변수가 아닙니다. 이름은 사용자 정의입니다.
2. 하위 템플릿의 인용 방식 {% extends "base.html"%}
{% block title %}The current time{% endblock %}
{% block content %}<p>It is now {{ current_date }}.</p>{% endblock %}
첫 번째 문장은 고정된 형식입니다. 템플릿의 첫 번째 템플릿에 extends를 표시해야 하는 매개 변수는 일반적으로 문자열이거나 변수에 대한 경로, 상대 경로, TEMPLATEDIRS의 템플릿 디렉터리는 기본 하위 템플릿으로 교체할 블록을 결정합니다. 다른 부분에 신경 쓸 필요가 없습니다. 정의된 블록이 없으면 교체하지 않고 부모 템플릿의 블록을 직접 사용합니다.
3. 상급 코드 블록을 인용하여 그 기초 위에서 수정 {{{{block.super}}
{% block footer %}
{{ block.super }}
AAAAA
{% endblock %}
:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.