Django中的template的神秘用法--继承

来源:互联网 发布:以人为鉴,可以知得失 编辑:程序博客网 时间:2024/05/16 19:21

在正常的做网站时,我们都需要编写很多的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”过来,

然后,子文件,可以重写需要修改的部分,看上面,这修改了两个部分,这样就达到了非常高效的代码复用了。








原创粉丝点击