Python的web模板,其實就是在HTML文檔中使用控制語句和表達語句替換HTML文檔中的變量來控制HTML的顯示格式,Python的web模板可以更加靈活和方便的控制HTML的顯示,而且大大地減少了編程人員的工作量。
模板語法:
1、控制語句{% ... %}:控制語句需要用{% end %}來作為此語句結束標志,通常用來作循環控制、條件控制、模塊控制等,可以更加方便的控制HTML內容的顯示;
2、表達語句{{ ... }}:一條表達語句就相當于一條Python語句,不需要結束語句,{{和}}之間可以放入任何Python表達式,Python模板語法可以自動運行{{和}}中的語句并把運行結果顯示在HTML模板中;
3、母板繼承:在母板中使用{% block block_name %}{% end %}進行模塊的占位,block_name可以自己定義,其他的都是固定的語法格式;在子模板中使用{% extends "xxx.html" %}表示此HTML模板繼承自“xxx.html”模板(母板),然后在子模板中使用{% block block_name %} ... {% end %}重新定義母板中占位的模塊,子模板中定義模塊內容就會顯示在母板中占位的位置,不同的子模板中可以定義不同的模塊內容來滿足自身的需要;
4、模板導入:在一個HTML模板中使用{% include "xxx.html" %},就會將xxx.html的內容導入(嵌入)當前HTML模板中,一般會將一些公共內容寫在一個模板中,然后導入到需要使用的模板中,以達到代碼重用的效果,使模板編碼更加簡潔方便;
5、模板函數:
1)static_url("static_file_path"):導入靜態文件,參數為靜態文件的路徑全名,例如<link href="{{ static_url(" rel="external nofollow" xxx.css") }}" rel="stylesheet" />,如果設置了靜態文件路徑(比如tornado.web.Application中參數settings的選項static_path),則該參數為設置的靜態文件路徑下的相對路徑;
2)escape(string):將string中的$、<和>轉換成對應的HTML字符串;
3)更新中...
下面是用tornado寫的一個非常簡單的web模板應用:
#!/usr/bin/env python# -*- coding: utf-8 -*-import tornado.webimport tornado.ioloopfrom tornado.options import define, optionsdefine('port', default=8888, help='run on give the give port', type=int)# 用于處理網頁的請求class MainHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): personinfodict = { 'name': 'Jason', 'age': 20, 'gender': 'male', } itemlist = ['name', 'age', 'gender'] # 將變量以參數的形式傳入HTML模板中 self.render('personinfo.html', itemlist=itemlist, personinfodict=personinfodict, welcome='hello guy!')# 設置不同路由的網頁對應的處理類app = tornado.web.Application([ (r'/', MainHandler)])# 開始主程序I/O循環if __name__ == '__main__': app.listen(options.port) tornado.ioloop.IOLoop.instance().start()
新聞熱點
疑難解答