Django模板中如何使用模板继承和块覆盖?
Django模板继承和块覆盖是提高开发效率和代码重用的重要手段。模板继承允许你创建基础模板,然后在子模板中继承该模板并添加自己的内容。块覆盖允许你在子模板中重写基础模板中定义的特定块。
下面是一个简单的示例,展示如何使用模板继承和块覆盖来实现一个基础模板和两个子模板:
<!-- base.html --> <html> <head> <title>{% block title %}Default Title{% endblock %}</title> </head> <body> <div id="navbar"> {% block navbar %} <a href="#home">Home</a> <a href="#about">About</a> <a href="#contact">Contact</a> {% endblock %} </div> <div id="content"> {% block content %}{% endblock %} </div> </body> </html>
<!-- child1.html --> {% extends "base.html" %} {% block title %}Homepage - {{ block.super }}{% endblock %} {% block navbar %} {{ block.super }} <a href="#login">Login</a> {% endblock %} {% block content %} <h1>Welcome to pidancode.com!</h1> {% endblock %}
<!-- child2.html --> {% extends "base.html" %} {% block title %}About Us - {{ block.super }}{% endblock %} {% block content %} <h1>About Us</h1> <p>皮蛋编程 is a coding resource for beginners and professionals alike.</p> {% endblock %}
在上面的示例中,我们首先定义了一个基础模板 base.html
,它包含了一些共用的结构和布局。在 base.html
中包含三个块:title
、navbar
和 content
。
接下来,我们定义了两个子模板 child1.html
和 child2.html
。它们都继承了基础模板 base.html
,并在子模板中定义了自己的块。
child1.html
中重定义了基础模板中的 title
、navbar
和 content
块,添加了一个额外的链接 Login
。
child2.html
只重定义了基础模板中的 title
和 content
块,添加了一个关于我们的标题和描述。
通过这种方式,我们可以轻松地创建多个子模板,每个子模板都可以重用基础模板的结构和布局,并且可以添加自己的内容和样式。
相关文章