大家可以先看看我的三个页面,分别是
天气预报网的首页
天气预报网 的省份页 , 如 浙江省各地区未来 5-7 天天气预报
天气预报网 的城市页 , 浙江杭州未来 5-7 天的天气预报
页面 |
模板文件名 |
Index_header.tpl;index_body.tplindex_footer.tpl |
|
state_header.tpl state_body.tplstate_footer.tpl |
|
city_header.tpl;city_body.tplcity _footer.tpl |
可能你会觉得奇怪,为什么我要分成不同的 header , footer 和 body ,其实这是一个经验教训来的。
首页的 footer ,是因为首页那里需要添加友情链接,而城市页和省份页的 footer ,则是要列出 xx 省的脚本信息,例如这个 广东省各城市 的页面和 广州天气预报 的页面 , 大家可以看看脚本信息是否不一样
什么是 MakoTemplate
现在给大家介绍一下什么是 MakoTemplate( 以下简称 mako), 如果你是用过 PHP 的 Smarty 模块就知道在 web 开发过程一个页面模板是多么的重要。 mako 是使用 python 编写的,没有用到 xml 语法,目前 python 当中性能最好的模板之一。目前的使用案例就有 python 的官网 python.org ,还有 reddit.com 的新版,目前我还没有用过 dangjo ,但感觉 mako 已经足够我使用了
具体的入门例子大家可以到 mako 官网的 文档 那里看,我这里贴一下我自己写的 python 组件
#encoding=UTF-8
# 你需要建立一个 template 目录,用来存放你的模板文件,例如可以存放一个 test.txt 来进行 # 测试,直接运行我的脚本 python templateUtils.py
# 一个 tmp 目录 tmp/mako_modules 目录来存放编译生成的临时文件
from mako.template import Template
from mako.lookup import TemplateLookup
import sys
reload(sys)
sys.setdefaultencoding('utf8')
myLookup = TemplateLookup(directories=['template'],module_directory='tmp/mako_modules')
def serve_template(templateName,**kwargs):
myTemplate = myLookup.get_template(templateName)
return myTemplate.render(**kwargs)
if __name__ == '__main__':
print serve_template('test.txt',name='yang',test='test',test1='test1')
test.txt 的内容
say hello to ${name}
使用 mako 的感受
1. 在做这个 天气预报查询网 的之前,我曾经是用 file.write() 来做文件生成,真的是费时费力,用了 mako ,把要生成的文件分割好,接下来就可以直接填入参数来生成需要的文件了
2. 生成 xml 文件, mako 可以生成 xml ?当然了,你只要设定好 xml 文件的内容,填入参数即可
3. 目前文档都是英文的,可能对于部分朋友不是那么友好,期待有达人进行中文翻译
4.mako 用的人感觉还是比较少,很多时候遇到问题我都是去官网那里摸索,过程比较痛苦,但现在看着 天气预报查询网 基本成型,也蛮开心的,有一种收获的感觉哦
下一篇,我会继续介绍 mako 的高级实用技巧