1. 程式人生 > 其它 >Tornado框架之深入(二)

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)

路由對映

先前我們在構建路由對映列表的時候,使用的是二元元組,如: