最近需要用使用python的模板语言来做一些工作,所以自己研究了下 cheetah,最主要的是空值的处理,之前看到大部分人都是使用 try except 来处理
#try $title #except #'' #end try
我感觉这也可以算是一种处理方式吧,通过以前使用java的各种模板语言,我感觉cheetah 肯定会提供处理空值的方法,所以我毅然决定了去读一下cheetah 的api,果然有处理方式,下面是api中一段文字
5.7 Missing Values If NameMapper can not find a Python value for a Cheetah variable name, it will raise the NameMapper.NotFound exception. You can use the #errorCatcher directive (section 10.2) or errorCatcher Template constructor argument (section 4.1) to specify an alternate behaviour. BUT BE AWARE THAT errorCatcher IS ONLY INTENDED FOR DEBUGGING!
To provide a default value for a placeholder, write it like this: $getVar('varName', 'default value'). If you don't specify a default and the variable is missing, NameMapper.NotFound will be raised.
啥也不说了直接上模板代码
#encoding UTF-8 #set $current_time=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) <meta http-equiv="Content-Type" content="text/html;charset=utf-8 "/> <html> <title>$title</title> <body> <h1>$getVar('subject', '')</h1> <table> <tr> <td> 时间 </td> <td>$current_time</td> </tr> #for $item in $getVar('state', '') <tr> <td>$getVar('item.name', 'default name')</td> <td>$getVar('item.value', 'default value')</td> </tr> #end for </table> </body> </html>不知道大家能看懂了不 呵呵