Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344853
  • 博文数量: 148
  • 博客积分: 2745
  • 博客等级: 少校
  • 技术积分: 1704
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-30 14:59
文章分类

全部博文(148)

文章存档

2013年(97)

2012年(7)

2011年(3)

2010年(41)

我的朋友

分类: Python/Ruby

2013-03-10 22:49:17

前段时间需要做一个模板处理的工作,因为需要在模板里面进行逻辑处理,简单的元组字符串替换和已经不能满足需求了。所以选择的第3方模板引擎来实现这个功能。目前大家用的比较多的模板引擎主要是:mako和jinja。 我对比了下,发现jinja的模板引擎和的语法还是比较相似的,于是我选择了。

首先我到jinja的官网上下载了源码包,并且进行了安装。然后看了下官方的文档,进行了简单的一些功能的测试,为以后的开发做准备。

现在开始简单的操作:
先在python里面进行模板的启动和赋值

env = Environment(loader=PackageLoader('mbtest', 'templates'))###mbtest是一个模块,里面内容可以随意写,tempaltes是模板的文件夹名,jinja模板可以操作模板的列表。

tpl = env.get_template('b2b-product.php')##模板名称
randarticle = rand_article(randnum)
keyword = ‘test’
minfo = []
displayinfo = {'ptitle':ptitle,'pdescription':pdescription}##python有的时候可以把字典看做对象来操作。里面的key就是对象的属性,val则是对象的属性值。

minfo.append(displayinfo)

tplcontent = tpl.render(minfo=minfo,keyword=keyword,randarticle=randarticle)##模板变量赋值

模板处理:
这里只是简单的进行模板的赋值,模板的循环输出等。

tpl.render(minfo=minfo,keyword=k[1],randarticle=randarticle)

keyword在模板里输出是{{keyword}} 变量的格式都是{{}}
语句在模板里面输出是{% %} 都和django的语法比较相似,如果熟悉django的话,会感觉非常的亲切。

{% for k in minfo %}
{{k.ptitle}}
{{k.pdescription}}
{% endfor %}


这个只是简单的进行一些模板的操作,后续我会更新一些更加复杂的应用,你也可以参考一下
阅读(599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~