python 模板引擎 对比_Python Web开发模板引擎优缺点总结

本文对比了Python的几个常用模板引擎,包括pyTenjin、Tornado.template、Jinja2和Mako,从性能和易用性两方面进行了分析。pyTenjin在预处理和性能上有优势,但标记复杂,且活跃度不高。Jinja2功能丰富但学习成本较高,不能直接输出非ASCII字符串。Tornado.template与Tornado框架搭配良好,但定位错误困难。Mako与pyTenjin类似,但学习成本较高。PyJade简洁快速,但文档不足,最新版本存在问题。综合考虑,作者倾向于继续使用pyTenjin。
摘要由CSDN通过智能技术生成

做 Web 开发少不了要与模板引擎打交道。我陆续也接触了 Python 的不少模板引擎,感觉可以总结一下了。

一、首先按照我的熟悉程度列一下:

pyTenjin:我在开发 Doodle 和 91 外教时使用。

Tornado.template:我在开发知乎日报时使用。

PyJade:我在开发知乎日报时接触过。

Mako:我只在一个早期就夭折了的小项目里用过。

Jinja2:我只拿它做过一些 demo。

其他就不提了,例如 Django 的模板,据说又慢又难用,我根本就没接触过。

二、再说性能

很多测试就是弄个大循环什么的,很没技术含量。其实模板的渲染时间主要消耗在字符串处理上,包括拼接、编码、转义等,而循环测的则是 Python runtime 的性能。

所以我还是用实际的例子来测试吧,最终选择了 Doodle 的首页。它有几个子模板、几个循环、几个函数调用和很多个变量,具有一定代表性。考虑到 pyTenjin 以外的模板引擎不支持局部缓存,我就把用到缓存的侧边栏去掉了,只渲染主体部分。

渲染 1000 次的结果为:pyTenjin 耗时 0.65 秒,取消预处理后耗时 0.9 秒;Tornado.template 耗时 1.0 秒;Jinja2 耗时 1.1 秒。

测试代码有几百行,19 个文件,我就懒得列出来了。其他模板引擎也懒得测了。

@pyTenjin 的优势很明显,特别是它支持预处理。这个预处理的主要作用是把一些常量先编译好,渲染时就不用再处理了(因为已经变成字符串了);此外,有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值