使用 Python 和 Cheetah 构建和扩充模板
2007-03-29 12:19:25 来源:WEB开发网核心提示: 生成其他类型的文件为了简便起见,迄今为止的所有示例生成的都是纯文本的电子邮件,使用 Python 和 Cheetah 构建和扩充模板(9),但您不必拘泥于此,Cheetah 最初被设计为生成 HTML 文本,OrderStatus.tmpl 中的模板定义将只包含专门用来显示定单状态的代码,
生成其他类型的文件
为了简便起见,迄今为止的所有示例生成的都是纯文本的电子邮件,但您不必拘泥于此。Cheetah 最初被设计为生成 HTML 文本,但您可以用它生成任何基于文本的格式:XML、SQL,甚至是 Python 或其他编程语言代码。
以下是一个 Cheetah 模板,它提供了一个呈现定单状态页的 HTML。可以将这个 HTML 转变成称为 OrderStatus.tmpl 的文件。注意,它与相同信息的电子邮件转换的基本相似性:
清单 11. 呈现定单状态信息的 HTML
<html>
<head><title>Status for order #$order.id</title></head>
<body>
<p>[You are logged in as $user.getFullName().]</p>
<p>
#if ($order.hasShipped())
Your order has shipped. Your tracking number is $order.trackingNumber.
#else
Your order has not yet shipped.
#end if
</p>
<p>Order #$order.id contains the following items:</p>
<ul>
#for $purchased, $quantity in $order.purchased.items():
<li>$purchased.name: $quantity unit#slurp
#if ($quantity != 1)
s
#end if
</li>
#end for
</ul>
<hr />
Served by Online Store v1.0
</body>
</html>
组合模板
前面定义的 HTML 定单状态页包含某些元素,这些元素对所有在线商店的 Web 应用程序都(应该)很常见:一个带有特定于页面的小标题的 HTML 标题、一个位于页面顶部告诉您您已经进入系统的通知以及一个 HTML 脚注。可能还应该将这些常见页面元素引入某个单独的主模板中。这样,OrderStatus.tmpl 中的模板定义将只包含专门用来显示定单状态的代码,而其他所有模板定义可以使用主模板中创建的代码,不必每次都定义相同的代码。
更多精彩
赞助商链接