Cheetah簡介
Cheetah提供了一門簡單語言,用來定義提供基本流控制和對象訪問構造的模板。它借用了Velocity的基本模板語法,但是添加了一些特性,為Cheetah模板提供對Python的便利構造了訪問。
from Cheetah.Template import Template
dummyUser={'firstName':'Harvey','lastName':'liu'}
dummyOrder={'id':2}
definition = """Hello, $user.firstName.
Your number is $order.id."""
definition_new = Template(definition, searchList=[{'user' : dummyUser,'order' : dummyOrder}])
definition字符串包含模板定義,它可以對外部變量(動態部分)進行引用。Template構造函數在這裡用來將模板定義綁定到名稱空間的searchList:查找對象的方式對應於定義中使用的變量。例如,模板定義中的$user在這裡映射到dummyUser變量。除此之外,可以提前運行Template構造函數,並在准備使用特定對象解釋模板的時候設置其searchList成員。
假設需要更改模板,需要打印用戶的全名,而不是用戶的名字。假定dummyUser對象已經提供了該信息,則可以通過更改模板定義單獨進行此更改。而在使用內置python模板系統時,則必須更改Python代碼。
流控制:#if指令
Cheetah提供了一個#if指令,該指令允許設置if-then-else條件。
Hello, $user.firstName.
Your order (#$order.id) has shipped:
#for $purchased, $quantity in $order.purchased.items():
$purchased.name: $quantity unit
#if $quantity != 1
s
#end if
#end for
打印結果為:
Widget, green: 50 unit
s
Widget, blue: 1 unit
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡