輸入捕捉是指在RequestHandler中用於取得客戶端輸入的工具函數和屬性。例如取得URL參數、Post提交參數等。
1、get_argument(name)、get_arguments(name)
RequestHandler.get_argument(name)與RequestHandler.get_arguments(name)都是傳回給定參數的值。 get_argument是取得單一值,而get_arguments在參數存在多個值得情況下使用,傳回多個值的清單。
注意:使用這兩個方法取得的事URL中查詢的參數與POST提交的參數的參數集合。
2、get_query_argument(name)、get_query_arguments(name)
功能與上面兩個方法類似,唯一差異是這兩個方法僅從URL中查詢參數。
3、get_body_argument(name)、get_body_arguments(name)
功能尚與上面四個方法類似,唯一差異是這兩個方法僅從POST提交的參數中查詢。
提示:實際開發中一般會使用get_argument、get_arguments這兩個方法,因為他們會包含其他方法的查詢結果。
4、get_cookie(name,default=None)
根據Cookie名稱取得Cookie的值
5、 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/request
#頁面顯示:
ip地址为::1,host为localhost:8888
常用的httputil.HTTPServerRequest物件屬性如下表:
屬性名稱 | 說明 |
---|---|
method | |
uri | |
path | |
query | |
version | |
headers | |
body | |
remote_ip | |
#protocol | |
#host | |
arguments |
以上是Python開發Tornado網站之RequestHandler:輸入捕捉的詳細內容。更多資訊請關注PHP中文網其他相關文章!