技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> perl的HTML::Template模板技术

perl的HTML::Template模板技术

浏览:2744次  出处信息

近来要做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>,这个看你的喜好了.
 

简单的例子

 

1
2
3
4
5
6
7
8
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
 
my $html = new HTML::Template ( filename=>"html.tmpl");   #new一个对象出来。其中需要指定一个html的文件
$html->param( TEST => 'hello!' );       # 给html标准替换成这个变量的值
print $html->output;                 #html的输出

html.tmpl文件的内容

1
2
3
4
5
<html><head>
<title>HTML::Template test</title>
</head><body>
<p>TEST:<TMPL_var NAME="TEST"> </p>  
</body></html>

下面对变量的命令小小的介绍一下

我现在分开做三部分写,第一部分写perl中解析html的写法,另一部分写html中这个模块的标记是怎么样写的,以这样来分别介绍常用的一些标记用法
 

TMPL_VAR

普通变量的插入.记的给内容存成*.tmpl的文件.TMPL_VAR是做为Template Variable的意思。这样是为了和html分开.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#perl中的写法.
$html->param( name => [
            {name => 'tom', age => '21'},
            {name => 'fukai', age => '25'},
        ]); 
 
#html中的内容
<ul>
<TMPL_LOOP NAME="name">
	<li><TMPL_VAR NAME="name">:<TMPL_VAR NAME="age"></li>
</TMPL_LOOP>
</ul>      
 
#html输出
<ul>
 
    <li>tom:21</li>
 
    <li>fukai:25</li>
 
</ul>

注,上面可以在后面加入escape=html这样来做url的编码。如<TMPL_VAR TEST escape=html>.

 

TMPL_LOOP

循环这个是用在重复输出内容到一个地方。如表格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#perl中的写法.
$html->param( name => [
            {name => 'tom', age => '21'},
            {name => 'fukai', age => '25'},
        ]); 
 
#html中的内容
<ul>
<TMPL_LOOP NAME="name">
	<li><TMPL_VAR NAME="name">:<TMPL_VAR NAME="age"></li>
</TMPL_LOOP>
</ul>      
 
#html输出
<ul>
 
    <li>tom:21</li>
 
    <li>fukai:25</li>
 
</ul>

注,上面最开始的name是指参数的名字. TMPL_LOOP  和 /TMPL_LOOP  之间是重复的内容.                                                        
 

TMPL_IF, TMPL_ELSE, TMPL_UNLESS

条件语句,这些和perl基本的语法一样.这样会在不同的情况插入不同的内容.

1
2
3
4
5
6
7
8
9
10
#perl中的写法.
$html->param( test => 1);
 
#html
<TMPL_IF NAME = "test">
<p>这个test=>1</p>
</TMP_IF>
 
#html输出
<p>这个test=>1</p>

TMPL_INCLUDE

插入包含另一个html的文件.

这个主要是在一个html中插入另一个html
用法直接在html中写。自然会解析成别的一个html的内容到当前的网页中,这个perl中不用写什么
<TMPL_INCLUDE NAME="temp2.html">

建议继续学习:

  1. perl更新/修改/删除文本文件内容    (阅读:9483)
  2. perl大牛flw传说    (阅读:6525)
  3. perl模块Getopt::Std用法及实例-从命令行读取参数模块    (阅读:5941)
  4. [Perl] Template::Toolkit 模板技术.    (阅读:5385)
  5. 在perl中连接和使用sqlite做数据存储    (阅读:5111)
  6. Perl命令行常见用法及技巧    (阅读:4869)
  7. perl模块之MIME::Lite发送有附件的邮件    (阅读:4460)
  8. perl的expect使用方法,实现非交互式登录。    (阅读:4547)
  9. Perl 倒行分析文件方法。perl读文本文件,从末尾往前读.    (阅读:4497)
  10. perl大牛唐凤传说    (阅读:4287)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1