在正常的做網站時,我們都需要編寫很多的html代碼,但你會發現,你會重複很多代碼,而每次,這寫代碼基本上都是
複製,然後粘貼,現在有兩種解決方法:
1.使用include標記來引入重複的文件的部分
2.使用Django中的模板的繼承特性
第一種:
這種方法,只需要把不變的部分分爲幾個文件存儲,然後分別導入就ok了,如:
header.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
footer.html:
<hr>
<p>Thanks for visiting my site.</p>
</body>
</html>
然後在index.html中導入兩個文件
content.html
{% include 'header.html' %}
this is some text of index
{% include 'footer.html' %}
對於以上的這種做法,在其他網站技術的開發中也是這麼引用,但Django提供了更好的解決方案
第二種:
這是Django的template的繼承方法,看例子:
base.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<h1>My helpful timestamp site</h1>
{% block content %}{% endblock %}
{% block footer %}
<hr>
<p>Thanks for visiting my site.</p>
{% endblock %}
</body>
</html>
subfile.html
{% extends "base.html" %}
{% block title %}The current time{% endblock %}
{% block content %}
<p>It is now {{ current_date }}.</p>
{% endblock %}
看一下這兩個文件,第二個使用extends標記繼承了base.html,這樣就可以直接將base.html中的內容全部“copy”過來,
然後,子文件,可以重寫需要修改的部分,看上面,這修改了兩個部分,這樣就達到了非常高效的代碼複用了。