get_query_argument(name, default=_ARG_DEFAULT, strip=True)
從請求的查詢字符串中返回指定參數(shù)name的值,如果出現(xiàn)多個同名參數(shù),則返回最后一個的值;
default為路由中未傳name參數(shù)時返回的默認(rèn)值,如default未設(shè)置,則會拋出tornado.web.MissingArgumentError異常;
strip表示是否過濾掉左右兩邊的空白字符,默認(rèn)為過濾。
get_query_arguments(name, strip=True)
從請求的查詢字符串中返回指定參數(shù)name的值,注意返回的是list列表(即使對應(yīng)name參數(shù)只有一個值),若未找到name參數(shù),則返回空列表。
獲取請求體數(shù)據(jù)get_body_argument(name, default=_ARG_DEFAULT, strip=True)
從請求體中返回指定參數(shù)name的值,如出現(xiàn)多個同名參數(shù),則返回最后一個的值;
default與strip同上。
get_body_arguments(name, strip=True)
從請求體中返回指定參數(shù)name的值,注意返回的是list列表(即使對應(yīng)name參數(shù)只有一個值),若未找到name參數(shù),則返回空列表。
說明:對于請求體中數(shù)據(jù)為json或xml的,無法通過這兩個方法獲取。
前兩類方法的整合get_argument(name, default=_ARG_DEFAULT, strip=True)
get_arguments(name, strip=True)
說明:對于請求體中數(shù)據(jù)為json或xml的,無法通過這兩個方法獲取。
這兩個方法最常用
獲取請求體中的json或xml數(shù)據(jù)body_json = self.request.body
body_dict = json.loads(body_json)
需要先判斷請求體的數(shù)據(jù)是否為 application/json 格式:
if self.reuqest.headers.get("Content-Type", "").startswith("application/json"): try: # 防止請求頭內(nèi)容是application/json,實(shí)際內(nèi)容不是json數(shù)據(jù) body_dict = json.loads(self.request.body) except Exception as e: logger({"message": e}) body_dict = dict()