所以我刚开始阅读一本关于Django的书(适合初学者),我看到了下面的代码片段:
<header>
<a href="{% url 'home' %}">Home</a> | <a href="{% url 'about' %}">About</a>
</header>
{% block content %}
{% endblock content %}
有没有人能给我解释一下{% block content %}
和{% endblock content %}
的用途?提前感谢你们!
4条答案
按热度按时间5w9g7ksd1#
block
用于覆盖模板的特定部分。在您的示例中,您有一个名为
content
的块,并且该块应该被从该模板继承的子块覆盖。从Django文档的例子中
要扩展的模板,名称为
base.html
覆盖子模板
“我的惊人的网站”将被孩子覆盖,然后显示“我的惊人的博客”
yduiuuwa2#
从某种意义上说,这就是模板的力量来源。
你可以创建一个模板的层次结构,所以从
base.html
开始,它可能就像你上面得到的那样;然后,您可以创建任何其他模板,例如
home.html
,并执行以下操作:然后在django中引用
home.html
,它会包含base.py
中的标记和home.html
中定义的内容。这是最基本的,但是如果你用积木把一些模板放在一起,你会学会的。
k97glaaz3#
例如,您有来自2个文件的代码摘录:
base.html:
home.html:
在home.html中,base.html的属性将被扩展,但是通过使用
{% block content %}
和{% endblock %}
,您将能够在base.html的属性上覆盖home.html的代码块这是一个动态网站的模板。
nkcskrwz4#
这只是django的模板继承,它基本上意味着另一个html文件的内容块已经被导入到你当前使用的html文件中。