Django中的template的神祕用法--繼承

在正常的做網站時,我們都需要編寫很多的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”過來,

然後,子文件,可以重寫需要修改的部分,看上面,這修改了兩個部分,這樣就達到了非常高效的代碼複用了。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章