Python Web开发Django、Flask之Templates

最近在学使用Flask开发网站,同样是Python Web框架,django和flask有许多共同点。

今天说下django template extends

我之前写php的时候一般把公用的模板比如页面头部和页面底部全部分离出来,
然后用require 'footer.php' 等
这样如果要修改头部后者尾部连接的话。只要修改2个文件就可以了。
开始我觉的这个已经非常好用了。但是我接触了django以后。发现django模板的继承功能
比php的还更强大。。

比如我们写一个index.php
<html>
<head>
<title>
test
</title>
<div id="daohang">
首页 python  python教程 django教程 关于老王python
</div>
</head>
<body>
this is index
</body>
</html>

如果是php的话:
我会新建立一个header.php
然后把
<html>
....
</head>
之间的内容全部放到header.php里
再在index.php里去调用header.php
index.php现在内容是:
<?php require_once('header.php');?>
<body>
this is index
</body>
</html>

如果是django的话
我会新建立一个base.html主模板文件,这个主模板文件主要是描述整体的架构:
base.html:
<html>
<head>
<title>
test
</title>
<div id="daohang">
首页 python  python教程 django教程 django教程 关于老王python
</div>
</head>
<body>
{%block content%}
this is index
{%endblock %}
</body>
</html>

如果其他类别的页面,比如list.html页面,他的头部和底部都和首页一样。如果是php的话。
list.html这样写:
<?php require_once('header.php');?>
<body>
this is list
</body>
</html>
而如果用django template的extends那就方便了
list.html:
{%entends base.html %}这里定义了extends的话,我们定义的子模板就可以继承父模板了
<body>
{%block content%}
this is list  #这里定义了block的话,我们定义的子模板就可以重写父模板定义的那部分内容。
{%endblock%}

</body>
</html>
通过django template和php的比较感觉django开发大项目灵活性和效率都会比php快。。
但是php的速度比django template会快很多。哈哈。每个方法都有优势和短处,该用什么时候用什么。。

在前几篇,我写了一篇关于django哲学的,有兴趣的可以看看。

作者:老王@python python教程
老王python,提供pythn相关的python教程和python下载,希望大家能够喜欢


转自:http://www.cnblogs.com/wanpython/archive/2012/12/02/2798360.html

参考:http://www.blogjava.net/pts/archive/2006/11/30/84666.aspx

你可能感兴趣的:(python,django,模板,flask)