WEB开发网
开发学院软件开发Python 使用 Python 和 Cheetah 构建和扩充模板 阅读

使用 Python 和 Cheetah 构建和扩充模板

 2007-03-29 12:19:25 来源:WEB开发网   
核心提示: 不幸的是,这个代码不像它的输出那样好,使用 Python 和 Cheetah 构建和扩充模板(3),通过查看此代码,难以看出电子邮件消息的结构,Python 一直拥有一些简单的模板系统,它们有一些易于让人理解的格式,许多代码是重复的(例如,有许多对列表的 append() 方法的调用)

不幸的是,这个代码不像它的输出那样好。通过查看此代码,难以看出电子邮件消息的结构。许多代码是重复的(例如,有许多对列表的 append() 方法的调用),这为错误创造了空间。最后,团队的 UI 设计人员可能宁愿编辑类似上面描述的抽象模板那样的东西,也不愿意编辑这种 Python 代码。由于上述这些原因,开发人员转向模板系统。

有 Python 的内置模板系统就足够了吗?

Python 提供了少许内置模板系统,它们在简单情况下工作得很好。很长时间以来,Python 一直拥有一些简单的模板系统,它们有一些易于让人理解的格式,这些格式令人回想起 C 的 printf() 字符串格式:

清单 4. Python 的内置模板系统

from DummyObjects import dummyUser, dummyOrder
print 'Hello, %s.
Your order (#%d) has shipped:' % (dummyUser.firstName,
                            dummyOrder.id)
print 'Hello, %(firstName)s.
Your order (#%(orderID)d) has shipped:' %
{'firstName' : dummyUser.firstName, 'orderID' : dummyOrder.id}

Python V2.4 引入了一个具有看起来更现代的格式的模板系统。变量名称是通过添加美元符号($)作为前缀来指定的;这类似于 Perl、PHP、大多数 shell 语言和 Cheetah:

清单 5. Python V2.4 的内置模板系统

from string import Template
from DummyObjects import dummyUser, dummyOrder
t = Template('Hello, $firstName.
Your order (#$orderID) has shipped:')
t.substitute({'firstName' : dummyUser.firstName, 'orderID' : dummyOrder.id})

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 Python Cheetah

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接