Django模板中如何使用include和extends包含和继承模板
Django中使用include和extends来包含和继承模板。
使用include包含模板可以让你将一个模板文件放入另一个模板文件中,实现代码复用,如下所示:
在父模板(parent.html)中添加以下内容:
<!DOCTYPE html> <html> <head> <title>Parent template</title> </head> <body> <h1>Parent template</h1> {% block content %} {% endblock %} </body> </html>
在子模板(child.html)中添加以下内容:
{% extends 'parent.html' %} {% block content %} <h2>Child template</h2> <p>This is child template content.</p> {% endblock %}
在子模板中我们使用extends指令指明继承哪个模板。子模板可以覆盖父模板中的block块,这里我们覆盖了父模板中的content块,添加了子模板的内容。使用include指令包含模板,将子模板中的内容插入到父模板的content块中。
在使用include时,可以将要包含的模板文件的名称传递给include指令,如下所示:
{% include "header.html" %}
这里我们将header.html包含到当前模板中。
下面是一个完整的包含和继承模板的例子:
在父模板(base.html)中添加以下内容:
<!DOCTYPE html> <html> <head> <title>Base template</title> </head> <body> <header> {% include "header.html" %} </header> <main> {% block content %} {% endblock %} </main> <footer> {% include "footer.html" %} </footer> </body> </html>
在子模板(index.html)中添加以下内容:
{% extends 'base.html' %} {% block content %} <h1>Welcome to pidancode.com</h1> <p>皮蛋编程是一个优秀的编程社区,欢迎您的加入。</p> {% endblock %}
这里我们通过extends指令指定了要继承的base.html文件,子模板中只有一个content块,覆盖了父模板中的content块,添加了子模板的内容。在父模板中使用include指令包含了header.html和footer.html文件,实现了代码复用。
相关文章