a13698822086 发表于 2017-5-7 08:19:21

[总结 提供源码]基于Python MakoTemplate开发的www.tianqiyubao-5-7-10.com

大家可以先看看我的三个页面,分别是
天气预报网的首页
天气预报网的省份页,如浙江省各地区未来5-7天天气预报
天气预报网的城市页, 浙江杭州未来5-7天的天气预报
页面
模板文件名
天气预报网
Index_header.tpl;index_body.tplindex_footer.tpl
浙江省各地区未来5-7天天气预报
state_header.tpl state_body.tplstate_footer.tpl
浙江杭州未来5-7天的天气预报
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)
       returnmyTemplate.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的高级实用技巧
  
页: [1]
查看完整版本: [总结 提供源码]基于Python MakoTemplate开发的www.tianqiyubao-5-7-10.com