近来要做web应用中,研究了一下perl的模板技术,从没有写过web。真是痛苦。在编程技术中模板(Template)技术是非常常用的一种技术,这样可以分离美工和程序员。。也就是所谓的MVC.
模板原理其实很简单,先做好html的样本,然后用程序读进来,在插入变量。最后输出。这样就分开了html和程序本身。
在perl中就是用HTML::Template是个很常用的模块,用来实现模板技术。在HTML::Template不但可以插入变量,还可以放条件,判断和文件插入。
HTML::Template模块的基本标记
这个模块有一些自己的HTML的标记。如<tmp_var>,<tmpl_if>,</tmpl_if>,<tmpl_loop>等,
| 以下是引用片段: <TMPL_VAR NAME=”TEST”> # 单个变量 <TMPL_LOOP NAME=”TEST”> #循环 <TMPL_IF NAME=”TEST”> # 条件语句 <TMPL_ELSE> # 条件语句 <TMPL_UNLESS NAME=”TEST”> # 条件语句 <TMPL_INCLUDE NAME=”temp2.html”> # 插入 |
这些标记可有二种写法,<tmpl_var name=parameter>和<tmpl_var parameter>,这个看你的喜好了.
简单的例子
|
|
html.tmpl文件的内容
|
|
下面对变量的命令小小的介绍一下
我现在分开做三部分写,第一部分写perl中解析html的写法,另一部分写html中这个模块的标记是怎么样写的,以这样来分别介绍常用的一些标记用法
TMPL_VAR
普通变量的插入.记的给内容存成*.tmpl的文件.TMPL_VAR是做为Template Variable的意思。这样是为了和html分开.
|
|
注,上面可以在后面加入escape=html这样来做url的编码。如<TMPL_VAR TEST escape=html>.
TMPL_LOOP
循环这个是用在重复输出内容到一个地方。如表格
|
|
注,上面最开始的name是指参数的名字. TMPL_LOOP 和 /TMPL_LOOP 之间是重复的内容.
TMPL_IF, TMPL_ELSE, TMPL_UNLESS
条件语句,这些和perl基本的语法一样.这样会在不同的情况插入不同的内容.
|
|
TMPL_INCLUDE
插入包含另一个html的文件.
这个主要是在一个html中插入另一个html
用法直接在html中写。自然会解析成别的一个html的内容到当前的网页中,这个perl中不用写什么
<TMPL_INCLUDE NAME="temp2.html">