Python:Tornado 第二章:實戰演練:開發Tornado網站:第四節:RequestHandler:輸入捕捉

上一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第三節:RequestHandler:接入點函數
下一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第五節:RequestHandler:輸出相應函數

輸入捕捉是指在RequestHandler中用於獲取客戶端輸入的工具函數和屬性。好比獲取URL參數、Post提交參數等。web

一、get_argument(name)、get_arguments(name)

RequestHandler.get_argument(name)與RequestHandler.get_arguments(name)都是返回給定參數的值。get_argument是獲取單個值,而get_arguments在參數存在多個值得狀況下使用,返回多個值的列表。
注意:使用這兩個方法獲取的事URL中查詢的參數與POST提交的參數的參數合集。segmentfault

二、get_query_argument(name)、get_query_arguments(name)

功能與上面兩個方法相似,惟一區別是這兩個方法僅僅從URL中查詢參數。瀏覽器

三、get_body_argument(name)、get_body_arguments(name)

功能尚與上面四個方法相似,惟一區別是這兩個方法僅僅從POST提交的參數中查詢。cookie

提示:實際開發中通常會使用get_argument、get_arguments這兩個方法,由於他們會包含其餘方法的查詢結果。
四、get_cookie(name,default=None)

根據Cookie名稱獲取Cookie的值app

五、 RequestHandler.request

返回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字典
相關文章
相關標籤/搜索