Python大神教你300行代码搞定HTML模板渲染「附源码」

html-css08

Python大神教你300行代码搞定HTML模板渲染「附源码」,第1张

模板语言由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>