Tornado框架之深入(二)
知識點
-
Application設定
-
debug模式
-
路由設定擴充套件
-
RequestHandler的使用
-
輸入方法
-
輸出方法
- 可重寫介面
目錄:
-
Application
-
settings
-
路由對映
-
輸入
-
get_argument(name, default=_ARG_DEFAULT, strip=True)
-
get_arguments(name, strip=True)
-
說明
-
注意:以上方法返回的都是unicode字串
-
思考
-
get_body_argument(name, default=_ARG_DEFAULT, strip=True)
-
get_body_arguments(name, strip=True)
-
說明
-
get_query_argument(name, default=_ARG_DEFAULT, strip=True)
-
get_query_arguments(name, strip=True)
-
1. 獲取查詢字串引數
-
2. 獲取請求體引數
-
3. 前兩類方法的整合
-
4. 關於請求的其他資訊
-
5. 正則提取uri
-
輸出
-
嘗試下面的程式碼會出現什麼問題?
-
想一想,可不可以在同一個處理方法中多次使用write方法?
-
想一想,如何利用write方法寫json資料?
-
兩種方式有什麼差異?
-
1. write(chunk)
-
2. set_header(name, value)
-
3. set_default_headers()
-
4. set_status(status_code, reason=None)
-
5. redirect(url)
-
6. send_error(status_code=500, **kwargs)
-
7. write_error(status_code, **kwargs)
-
介面與呼叫順序
-
1. initialize()
-
2. prepare()
-
3. HTTP方法
-
4. on_finish()
-
5. set_default_headers()
-
6. write_error()
-
7. 呼叫順序
- 疑問:
Application
settings
前面的學習中,我們在建立tornado.web.Application的物件時,傳入了第一個引數——路由對映列表。實際上Application類的建構函式還接收很多關於tornado web應用的配置引數,在後面的學習中我們用到的地方會為大家介紹。
我們先來學習一個引數:
debug,設定tornado是否工作在除錯模式,預設為False即工作在生產模式。當設定debug=True 後,tornado會工作在除錯/開發模式,在此種模式下,tornado為方便我們開發而提供了幾種特性:
-
自動重啟,tornado應用會監控我們的原始碼檔案,當有改動儲存後便會重啟程式,這可以減少我們手動重啟程式的次數。需要注意的是,一旦我們儲存的更改有錯誤,自動重啟會導致程式報錯而退出,從而需要我們儲存修正錯誤後手動啟動程式。這一特性也可單獨通過autoreload=True設定;
-
取消快取編譯的模板,可以單獨通過compiled_template_cache=False來設定;
-
取消快取靜態檔案hash值,可以單獨通過static_hash_cache=False來設定;
-
提供追蹤資訊,當RequestHandler或者其子類丟擲一個異常而未被捕獲後,會生成一個包含追蹤資訊的頁面,可以單獨通過serve_traceback=True來設定。
使用debug引數的方法:
import tornado.web
app = tornado.web.Application([], debug=True)
路由對映
先前我們在構建路由對映列表的時候,使用的是二元元組,如: