上一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第三節:RequestHandler:接入點函數
下一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第五節:RequestHandler:輸出相應函數
輸入捕捉是指在RequestHandler中用於獲取客戶端輸入的工具函數和屬性。好比獲取URL參數、Post提交參數等。web
RequestHandler.get_argument(name)與RequestHandler.get_arguments(name)都是返回給定參數的值。get_argument是獲取單個值,而get_arguments在參數存在多個值得狀況下使用,返回多個值的列表。
注意:使用這兩個方法獲取的事URL中查詢的參數與POST提交的參數的參數合集。segmentfault
功能與上面兩個方法相似,惟一區別是這兩個方法僅僅從URL中查詢參數。瀏覽器
功能尚與上面四個方法相似,惟一區別是這兩個方法僅僅從POST提交的參數中查詢。cookie
提示:實際開發中通常會使用get_argument、get_arguments這兩個方法,由於他們會包含其餘方法的查詢結果。
根據Cookie名稱獲取Cookie的值app
返回tornado.httputil.HTTPServerRequest對象實例的屬性,經過該對象能夠獲取關於HTTP請求的一切信息,好比:函數
from tornado.web import Application, RequestHandler import tornado.ioloop class DetailHandler(RequestHandler): def get(self): ip = self.request.remote_ip # 獲取客戶端的IP地址 host = self.request.host # 獲取請求的主機地址 result="ip地址爲%s,host爲%s"%(ip,host) return self.write(result) if __name__ == '__main__': app = Application([ ("/request", DetailHandler) ]) app.listen(8888) tornado.ioloop.IOLoop.current().start()
瀏覽器輸入:http://localhost:8888/requesttornado
頁面顯示:工具
ip地址爲::1,host爲localhost:8888
經常使用的httputil.HTTPServerRequest對象屬性以下表:oop
屬性名 | 說明 |
---|---|
method | HTTP請求方法,例如:GET、POST |
uri | 客戶端請求的uri的完整內容。 |
path | uri路徑名,即不包含查詢字符串 |
query | uri中的查詢字符串 |
version | 客戶端發送請求時使用的HTTP版本,例如:HTTP/1.1 |
headers | 以字典方式的形式返回HTTP Headers |
body | 以字符串的形式返回HTTP消息體 |
remote_ip | 客戶端的IP地址 |
protocol | 請求協議,例如:HTTP、HTTPS |
host | 請求消息的主機名 |
arguments | 客戶端提交的全部參數。 |
files | 以字典形式返回客戶端上傳的文件,每一個文件名對應一個HTTPFile |
cookies | 客戶端提交的Cookies字典 |