get_query_argument(name, default=_ARG_DEFAULT, strip=True)
從請求的查詢字符串中返回指定參數name的值,如果出現多個同名參數,則返回最后一個的值;
default為路由中未傳name參數時返回的默認值,如default未設置,則會拋出tornado.web.MissingArgumentError異常;
strip表示是否過濾掉左右兩邊的空白字符,默認為過濾。
get_query_arguments(name, strip=True)
從請求的查詢字符串中返回指定參數name的值,注意返回的是list列表(即使對應name參數只有一個值),若未找到name參數,則返回空列表。
get_body_argument(name, default=_ARG_DEFAULT, strip=True)
從請求體中返回指定參數name的值,如出現多個同名參數,則返回最后一個的值;
default與strip同上。
get_body_arguments(name, strip=True)
從請求體中返回指定參數name的值,注意返回的是list列表(即使對應name參數只有一個值),若未找到name參數,則返回空列表。
說明:對于請求體中數據為json或xml的,無法通過這兩個方法獲取。
get_argument(name, default=_ARG_DEFAULT, strip=True)
get_arguments(name, strip=True)
說明:對于請求體中數據為json或xml的,無法通過這兩個方法獲取。
這兩個方法最常用
body_json = self.request.body
body_dict = json.loads(body_json)
需要先判斷請求體的數據是否為 application/json 格式:
if self.reuqest.headers.get("Content-Type", "").startswith("application/json"):try: # 防止請求頭內容是application/json,實際內容不是json數據 body_dict = json.loads(self.request.body)except Exception as e: logger({"message": e}) body_dict = dict()
第一種是未命名的方式,按照匹配順序進行傳遞:
...def get(self, subject, city): ...(r"/subject/(.+)/(.+)", SubjectCityHandler),...
第二種是以命名的方式進行傳遞:
...def get(self, city, date): ...(r"/subject/(?P<date>.+)/(?P<city>.+)", SubjectCityHandler),...
屬性 | 說明 |
self.request.method | http的請求頭;get, post等 |
self.reuqest.uri | 客戶端請求完整的uri |
self.request.path | uri的路徑名,不包含查詢的字符串 |
self.request.query | uri中的查詢字符串 |
self.request.version | http/1.1 |
self.request.headers | 請求頭 |
self.requset.body | 字符串的消息 |
self.request.remote_ip | 客戶端請求的ip |
self.request.protocol | http的協議http or https |
self.request.host | 請求消息的主機名 |
self.request.files | 以字典的方式表達客戶端上傳的文件 |
self.request.cookies | 客戶端的cookies字典 |
self.request.arguments | 客戶端提交的參數 |
新聞熱點
疑難解答