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

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

 2007-03-29 12:19:25 来源:WEB开发网   
核心提示: 清单 2. 模板的抽象形式Hello, [customer's first name].Your order (#[order's ID]) has shipped:[list items in the order, with quantity, appending &qu

清单 2. 模板的抽象形式

Hello, [customer's first name].
Your order (#[order's ID]) has shipped:
[list items in the order, with quantity, appending "unit(s)" to each]
Your tracking number is [order's tracking number].

电子邮件正文的动态部分是与来自某个特定客户的特定定单有关的所有信息。这部分是由应用程序对象以及与它们有关的数据成员表示的,比如,定单、物品列表和定单的数量。

接下来这一节将使用虚构的 User 和 Order 对象来模拟模板的动态部分。在实际应用程序中,这些对象可能是从一个数据库中获得的。

模板系统允许您将文本的静态部分表示为一个模板定义,并与动态部分分开存储和管理。静态部分可以与不同的动态值组合在一起,生成定制文本。

下面几节将解释 Python 内置工具的缺点,并介绍如何使用 Cheetah 作为替代,以及如何以 Cheetah 模板的形式实现这个电子邮件消息。

为什么要使用模板系统?

如果没有模板系统,那么就要使用 Python 代码生成类似示例电子邮件消息的文本片段。还要编写附加到字符串列表的逻辑或为类文件对象编写的逻辑。例如,以下代码可以生成上面所述的电子邮件:

清单 3. 生成电子邮件

from DummyObjects import dummyUser, dummyOrder
l = []
l.append('Hello, ')
l.append(dummyUser.firstName)
l.append('.
Your order (#')
l.append(str(dummyOrder.id))
l.append(') has shipped:
')
for purchased, quantity in dummyOrder.purchased.items():
   l.append(' ')
   l.append(purchased.name)
   l.append(': ')
   l.append(str(quantity))
   l.append(' unit(s)
')
l.append('
Your tracking number is ')
l.append(dummyOrder.trackingNumber)
l.append('.')
print ''.join(l)

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

Tags:使用 Python Cheetah

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