模板语言由HTML代码和逻辑控制代码组成,此处 @PHP 。通过模板语言可以快速的生成预想的HTML页面。应该算是后端渲染不可缺少的组成部分。
通过使用学习 tornado 、 bottle 的模板语言,我也效仿着实现可以独立使用的模板渲染的代码模块,模板语法来自 tornado 和 bottle 的语法。可以用来做一些简单的事情 网页渲染 , 邮件内容生成 等HTML显示方面。以下就是简单的语法使用介绍。
1. 变量。使用 {{ }} 包裹起来,里面的变量为Python传入。模板渲染时会将传入的变量转换成字符串并填入对应位置。
2. 转义。默认传入的数据都会进行HTML转义,可以使用 {% raw value %} 来将value的内容按原始字符串输出。
3. 条件控制。支持Python的 if,elif,else 。条件代码需要放在 {% %} 内部,并且在条件结束后需要额外增加 {% end %} ,用于标识条件控制语句块范围。
4. 循环控制。支持Python的 for 和 while 。与条件控制一样也需要放在 {% %} 内部,并且结束处需要额外增加 {% end %} ,用于标识循环控制语句块的范围。
这个模板语言模块是在 Python2.7 上面开发使用的,如果要在 Python3+ 上使用需要对 str 和 bytes 进行一些处理即可,由于没有引用任何其他模块,可以很好地独立使用。
原文链接:
http://www.cnblogs.com/jeffxun/p/15585073.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Description" content="Design by :Donkey" />
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />
<title>人才招聘</title>
<link href="/zh-cn/images/style.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src="/zh-cn/images/js.js" type="text/javascript"></script>
<style type="text/css">
<!--
body{
font-size:12px
background:#FFFFFF url(http://www.gzsp.com/zh-cn/images/bks.gif)
}
input{ background:#FFFFFF}
textarea{ background:#FFFFFF}
select{ background:#FFFFFF}
.STYLE1 {color: #FF0000}
/*================================提交按钮==========================*/
.buttonArea{ text-align:rightpadding:0 10px 0 10px}
.btn_mouseout
{
width:80pxheight:40px
border: #ffffff 1px solid
padding:1px
font-size: 12px
cursor: pointer
color: #666
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#BECCDA)
}
.btn_mouseover
{
width:80pxheight:40px
border: #ffffff 1px solid
padding: 1px
font-size: 12px
cursor: pointer
color: #f60
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#D7E7FA)
}
.btn_mousedown
{
width:80pxheight:40px
border: #dfe6ef 1px solid
padding: 1px
font-size: 12px
cursor: pointer
color: #f60
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5)
}
.btn_mouseup
{
width:80pxheight:40px
border:#ffffff 1px solid
padding: 1px
font-size: 12px
cursor: pointer
color:#f60
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#C3DAF5)
}
-->
</style>
<script language="JavaScript" type="text/javascript">
<!--
/****************
js制作阿蒙
*****************/
var itemArray = new Array("xm","sfzhm","xm2","hj","tel","xzz","byyx","by_year","xm222","textarea","jyzk")//把需要输入的输入框id放到这个数组里
var labelArray = new Array("用户名","身份证号码","出生日期","户籍","联系电话","住址","毕业院校","毕业时间","所学专业","计算机水平","受教育情况")//把对应的输入框名字放在这里
function funsubmit(){
var len = itemArray.length
for(i=0i<leni++){
if(eval("document.all."+itemArray[i]+".value") == ""){
alert(labelArray[i]+" 不能为空!")
eval("document.all."+itemArray[i]+".focus()")
eval("document.all."+itemArray[i]+".style.backgroundColor='#FFECEC'")
return false
}
}
}
function blank(obj){
if(obj.value.length != 0){
obj.style.backgroundColor=""
}
}
//-->
</script>
</head>
<body>
<div class="content3">
<form name="frmdemo" method="post" action="http://cmp.gzsp.com:8090/zp/spzp.php" id="sqd1" onSubmit="return funsubmit()">
<div align="center"><strong>请填写你的简历</strong>(注意星号项目必须填写)
</div>
<table width="690" border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#CCCCCC">
<tr>
<td><div align="center" style="padding-top:5px"><strong>个人简历</strong></div></td>
</tr>
</table>
<table width="690" border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#FFFFFF" class="f12">
<tbody>
<tr>
<td width="75" align="middle" bgcolor="#ebebeb">姓 名</td>
<td width="214"><input onPropertyChange="blank(this)" class="alcatel" maxlength="18" size="18" value="" name="xm" />
<font color="#ff0000">*</font></td>
<td width="92" align="middle" bgcolor="#ebebeb">性 别</td>
<td width="291">
<select class="alcatel" name="xb">
<option selected="selected">男</option>
<option>女</option>
</select>
</td>
</tr>
<tr>
<td align="middle">身份证号</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="18" size="18" name="sfzhm" />
<font color="#ff0000">*</font></td>
<td align="middle">出生日期</td>
<td><input onPropertyChange="blank(this)" class="alcatel" size="18" value="" name="xm2" />
<span class="STYLE1">*</span></td>
</tr>
<tr>
<td align="middle" bgcolor="#ebebeb">政治面貌</td>
<td><select class="alcatel" name="zzmm">
<option
selected="selected">群众</option>
<option>团员</option>
<option>党员</option>
<option>民主人士</option>
</select> </td>
<td align="middle" bgcolor="#ebebeb">户 籍</td>
<td><input onPropertyChange="blank(this)" name="hj" class="alcatel" value="" size="18" />
<font
color="#ff0000">*</font></td>
</tr>
<tr>
<td align="middle">婚姻状况</td>
<td><select class="alcatel" name="hyzk">
<option selected="selected">未婚</option>
<option>已婚</option>
</select></td>
<td align="middle">视力状况</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="4" size="4" name="slzk" /></td>
</tr>
<tr>
<td align="middle" bgcolor="#ebebeb">身高/厘米</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="3" size="3" value="" name="sg" /></td>
<td align="middle" bgcolor="#ebebeb">体重/公斤</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="3" size="3" name="tz" /></td>
</tr>
<tr>
<td align="middle">民 族</td>
<td><select class="alcatel" name="mz">
<option
selected="selected">汉族</option>
<option>蒙古族</option>
<option>回族</option>
<option>藏族</option>
<option>维吾尔族</option>
<option>苗族</option>
<option>彝族</option>
<option>壮族</option>
<option>布依族</option>
<option>朝鲜族</option>
<option>满族</option>
<option>侗族</option>
<option>瑶族</option>
<option>白族</option>
<option>土家族</option>
<option>哈尼族</option>
<option>哈萨克族</option>
<option>傣族</option>
<option>黎族</option>
<option>僳僳族</option>
<option>佤族</option>
<option>畲族</option>
<option>高山族</option>
<option>拉祜</option>
<option>水族</option>
<option>东乡族</option>
<option>纳西族</option>
<option>景颇族</option>
<option>柯尔克孜</option>
<option>土族</option>
<option>达斡尔族</option>
<option>仫佬族</option>
<option>羌族</option>
<option>布朗族</option>
<option>撒拉族</option>
<option>毛难族</option>
<option>仡佬族</option>
<option>锡伯族</option>
<option>阿昌族</option>
<option>普米族</option>
<option>塔吉克族</option>
<option>怒族</option>
<option>乌孜别克</option>
<option>俄罗斯族</option>
<option>鄂温克族</option>
<option>崩龙族</option>
<option>保安族</option>
<option>裕固族</option>
<option>京族</option>
<option>塔塔尔族</option>
<option>独龙族</option>
<option>鄂伦春族</option>
<option>赫哲族</option>
<option>门巴族</option>
<option>珞巴族</option>
<option>基诺族</option>
<option>青族</option>
<option>其他</option>
</select> </td>
<td align="middle">电 话</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="18" size="18" value="" name="tel" />
<font color="#ff0000">*</font></td>
</tr>
<tr>
<td align="middle" bgcolor="#ebebeb">现 住 址</td>
<td colspan="3"><input onPropertyChange="blank(this)" class="alcatel" maxlength="70" size="70"
name="xzz" />
<font color="#ff0000">*</font></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellpadding="0" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#FFFFFF" class="f12">
<tbody>
<tr>
<td align="middle" width="75">毕业院校</td>
<td width="315"><input onPropertyChange="blank(this)" class="alcatel" maxlength="30" value="" name="byyx" />
<font color="#ff0000">*</font></td>
<td class="f12" align="middle" width="65" bordercolorlight="#D1D1D1" bordercolordark="#ffffff">毕业日期</td>
<td width="225" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" class="f12"><input onPropertyChange="blank(this)" class="alcatel" maxlength="15"
size="15" name="by_year" />
<font color="#ff0000">*</font></td>
</tr>
<tr>
<td class="f12" align="middle" bgcolor="#ebebeb"
bordercolorlight="#D1D1D1" bordercolordark="#ffffff">所学专业</td>
<td class="f12" bordercolorlight="#D1D1D1" bordercolordark="#ffffff"><input onPropertyChange="blank(this)" class="alcatel" maxlength="10" size="10" value="" name="xm222" />
<font color="#ff0000">*</font></td>
<td class="f12" align="middle" bgcolor="#ebebeb"
bordercolorlight="#D1D1D1" bordercolordark="#ffffff">最高学历</td>
<td class="f12" bordercolorlight="#D1D1D1" bordercolordark="#ffffff"><select class="alcatel" name="zgxl">
<option>初中</option>
<option>高中</option>
<option>中专</option>
<option>大专</option>
<option selected="selected">本科</option>
<option>硕士</option>
<option>博士</option>
</select></td>
</tr>
<tr>
<td class="f12" align="middle" bordercolorlight="#D1D1D1" bordercolordark="#ffffff">英语水平</td>
<td class="f12" bordercolorlight="#D1D1D1" bordercolordark="#ffffff"><select class="alcatel"
name="yysp">
<option>一般</option>
<option
selected="selected">四级</option>
<option>六级</option>
<option>专业四级</option>
<option>专业八级</option>
<option>托福</option>
<option>GRE</option>
<option>雅思</option>
</select> </td>
<td class="f12" align="middle" bordercolorlight="#D1D1D1" bordercolordark="#ffffff"> </td>
<td class="f12" bordercolorlight="#D1D1D1" bordercolordark="#ffffff"> </td>
</tr>
<tr>
<td align="middle" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#FFFFF7" class="f12">计<br />
算<br />
机<br />
水<br />
平<br />
特<br />
长</td>
<td colspan="3" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#FFFFF7" class="f12"><font color="#ff0000">
<textarea onPropertyChange="blank(this)" name="textarea" rows="8" cols="80"></textarea>
<font color="#ff0000">*</font> </font></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#ffffff" class="f12">
<tbody>
<tr>
<td align="middle" width="70"
rowspan="2">受<br />
教<br />
育<br />
及<br />
培<br />
训<br />
状<br />
况</td>
<td colspan="5"><span
lang="en-us" xml:lang="en-us">学 校 名 称 专 业 年 月至 年 月 取得文凭/资格证书</span></td>
</tr>
<tr>
<td colspan="5"><textarea onPropertyChange="blank(this)" name="jyzk" rows="8" cols="80"></textarea>
<font color="#ff0000"><font color="#ff0000">*</font></font></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#ffffff" class="f12">
<tbody>
<tr>
<td width="70"
rowspan="2" align="middle" bgcolor="#FFFFF7">工<br />
作<br />
经<br />
历<br />
摘<br />
要</td>
<td colspan="5" bgcolor="#FFFFF7">年 月至 年 月在何单位、部门何职位、职责离职原因</td>
</tr>
<tr>
<td colspan="5" bgcolor="#FFFFF7"><textarea name="gzjl" rows="12" cols="80"></textarea></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#ffffff" class="f12">
<tbody>
<tr>
<td width="70" height="85" align="middle">自<br />
我<br />
评<br />
价<br /></td>
<td colspan="5"><textarea name="textarea2" rows="6" cols="80"></textarea></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#ffffff" class="f12">
<tbody>
<tr>
<td width="70" height="72" align="middle" bgcolor="#FFFFF7">请描述<br />
你理想<br />
的工作</td>
<td colspan="5" bgcolor="#FFFFF7"><textarea name="textarea3" rows="5" cols="80"></textarea></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#ffffff" class="f12">
<tbody>
<tr>
<td width="70" height="72" align="middle">请描述<br />
你理想<br />
的公司</td>
<td colspan="5"><textarea name="textarea4" rows="5" cols="80"></textarea></td>
</tr>
</tbody>
</table>
<table width="690"
border="1" align="center" cellpadding="0" cellspacing="0" bordercolordark="#ffffff" bgcolor="#FFFFFF" class="f12">
<tbody>
<tr>
<td align="middle" width="90" bgcolor="#ebebeb" height="24">欲从事职位一</td>
<td width="220"><input onPropertyChange="blank(this)" class="alcatel" maxlength="20" value="" name="hj2" /></td>
<td align="middle" width="100" bgcolor="#ebebeb">欲从事职位二</td>
<td width="220"><input onPropertyChange="blank(this)" class="alcatel" maxlength="20" value="" name="hj3" /></td>
</tr>
<tr>
<td align="middle">要求待遇(月薪)</td>
<td><input onPropertyChange="blank(this)" class="alcatel" maxlength="5" size="5" value="" name="yqdy" />
元</td>
<td align="middle"> </td>
<td> </td>
</tr>
</tbody>
</table>
<table width="690" border="1" align="center" cellspacing="0" bordercolorlight="#D1D1D1" bordercolordark="#ffffff" bgcolor="#CCCCCC">
<tr>
<td>
<div align="center" style="padding:10px">
<input onPropertyChange="blank(this)" class="btn_mouseout"
onmouseover="this.className='btn_mouseover'"
onmouseout="this.className='btn_mouseout'"
onmousedown="this.className='btn_mousedown'"
onmouseup="this.className='btn_mouseup'"
onfocus="if(this.blur)this.blur()" type="submit" value="提交" name="Submit">
</div>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>