所以我刚开始读一本关于Django的书(面向初学者),我遇到了以下代码片段:
<header>
<a href="{% url 'home' %}">Home</a> | <a href="{% url 'about' %}">About</a>
</header>
{% block content %}
{% endblock content %}
有人可以向我解释{% block content %}
和{% endblock content %}
的用途吗?提前非常感谢您!
答案 0 :(得分:5)
block
用于覆盖模板的特定部分。
在您的情况下,您有一个名为content
的块,应该由继承自此模板的子项覆盖。
要扩展的模板,名为base.html
<head>
<link rel="stylesheet" href="style.css">
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
覆盖子模板
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
孩子会覆盖“我的奇妙站点”,然后显示“我的奇妙博客”
答案 1 :(得分:2)
从某种意义上来说,这就是模板的力量所在。
您可以创建模板的层次结构,因此可以从base.html
开始,就像上面的内容一样。
<body>
{% block content %}
{% endblock content %}
</body>
然后,您可以创建任何其他模板,例如home.html
,并执行类似的操作;
{% extends "base.html" %}
{% block content %}
<h1>Welcome</h1>
<p>This is the home page</p>
{% endblock content %}
然后您将在django中引用home.html
,并将其中包含来自base.py
的标记以及在home.html
中定义的内容。
这是基础,但是如果您使用块将一些模板放在一起,则会将其拾起。