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


这个只是简单的进行一些模板的操作,后续我会更新一些更加复杂的应用,你也可以参考一下官方的文档

python视频教程

相关文章: