Tornado是使用Python編寫的一個強大的、可擴展的Web服務器。它在處理嚴峻的網絡流量時表現得足夠強健,在創建和編寫時有着足夠的輕量級,能被用在大量的應用和工具中。
tornadoweb.org : 大量的例子和功能缺陷
Tornado在Github上的版本庫: 細節和變更
Tornado的Google Group: 更具體的問題的咨詢
1. tornado.options:從命令行中讀取設置
from tornado.options import define, options define("port", default=8000, help="run on the given port", type=int)
該模塊指定應用監聽HTTP請求的端口。
工作流程:如果一個與define語句中同名的設置在命令行中被給出,那么它將成為全局options的一個屬性。如果用戶運行程序時使用了--help
選項,程序將打印出所有你定義的選項(‘port’)以及你在define函數的help參數中指定的文本。如果用戶沒有為這個選項指定值,則使用default的值進行代替。Tornado使用type參數進行基本的參數類型驗證,當不合適的類型被給出時拋出一個異常。
2. tornado.web.RequestHandler: Tornado的請求處理函數類
內建方法:
get_argument:獲取查詢字符串參數,以及解析 POST
的內容
write:以一個字符串作為函數的參數,將其寫入到HTTP響應中
3.
app = tornado.web.Application(handlers=[ (r"/reverse/(\w+)", ReverseHandler), (r"/wrap", WrapHandler) ])
如果正則表達式中有一系列額外的括號,匹配的字符串將被按照在正則表達式中出現的順序作為額外的參數傳遞進參數input中。
4. Tornado會自動地設置HTTP狀態碼
404 Not Found
Tornado會在HTTP請求的路徑無法匹配任何RequestHandler類相對應的模式時返回404(Not Found)響應碼。
400 Bad Request
如果你調用了一個沒有默認值的get_argument函數,並且沒有發現給定名稱的參數,Tornado將自動返回一個400(Bad Request)響應碼。
405 Method Not Allowed
如果傳入的請求使用了RequestHandler中沒有定義的HTTP方法(比如,一個POST請求,但是處理函數中只有定義了get方法),Tornado將返回一個405(Methos Not Allowed)響應碼。
500 Internal Server Error
當程序遇到任何不能讓其退出的錯誤時,Tornado將返回500(Internal Server Error)響應碼。你代碼中任何沒有捕獲的異常也會導致500響應碼。
200 OK
如果響應成功,並且沒有其他返回碼被設置,Tornado將默認返回一個200(OK)響應碼。
5. templates: 允許嵌入Python代碼片段的HTML文件。
6. 模板繼承: 新的模板文件的頂部放上一句{% extends "filename.html" %}
7. 一個塊語句可以壓縮一些當你擴展時可能想要改變的模板元素。比如,為了使用一個能夠根據不同頁覆寫的動態header塊,你可以在父模板main.html中添加如下代碼:
<header> {% block header %}{% end %} </header>
子模板放入覆寫內容