Python之web模板应用
Python的web模板,其实就是在HTML文档中使用控制语句和表达语句替换HTML文档中的变量来控制HTML的显示格式,Python的web模板可以更加灵活和方便的控制HTML的显示,而且大大地减少了编程人员的工作量。
模板语法:
1、控制语句{%...%}:控制语句需要用{%end%}来作为此语句结束标志,通常用来作循环控制、条件控制、模块控制等,可以更加方便的控制HTML内容的显示;
2、表达语句{{...}}:一条表达语句就相当于一条Python语句,不需要结束语句,{{和}}之间可以放入任何Python表达式,Python模板语法可以自动运行{{和}}中的语句并把运行结果显示在HTML模板中;
3、母板继承:在母板中使用{%blockblock_name%}{%end%}进行模块的占位,block_name可以自己定义,其他的都是固定的语法格式;在子模板中使用{%extends "xxx.html"%}表示此HTML模板继承自“xxx.html”模板(母板),然后在子模板中使用{%blockblock_name%}...{%end%}重新定义母板中占位的模块,子模板中定义模块内容就会显示在母板中占位的位置,不同的子模板中可以定义不同的模块内容来满足自身的需要;
4、模板导入:在一个HTML模板中使用{%include"xxx.html"%},就会将xxx.html的内容导入(嵌入)当前HTML模板中,一般会将一些公共内容写在一个模板中,然后导入到需要使用的模板中,以达到代码重用的效果,使模板编码更加简洁方便;
5、模板函数:
1)static_url("static_file_path"):导入静态文件,参数为静态文件的路径全名,例如
2)escape(string):将string中的$、<和>转换成对应的HTML字符串;
3)更新中...
下面是用tornado写的一个非常简单的web模板应用:
#!/usr/bin/envpython #-*-coding:utf-8-*- importtornado.web importtornado.ioloop fromtornado.optionsimportdefine,options define('port',default=8888,help='runongivethegiveport',type=int) #用于处理网页的请求 classMainHandler(tornado.web.RequestHandler): defget(self,*args,**kwargs): personinfodict={ 'name':'Jason', 'age':20, 'gender':'male', } itemlist=['name','age','gender'] #将变量以参数的形式传入HTML模板中 self.render('personinfo.html',itemlist=itemlist,personinfodict=personinfodict,welcome='helloguy!') #设置不同路由的网页对应的处理类 app=tornado.web.Application([ (r'/',MainHandler) ]) #开始主程序I/O循环 if__name__=='__main__': app.listen(options.port) tornado.ioloop.IOLoop.instance().start()
{{welcome}} {%foriteminitemlist%}
- {{item}}:{{personinfodict[item]}}
{%end%}