概述
1. get_argument(name,default=_ARG_DEFAULT,strip=True)
2. get_arguments(name,strip=True)
3. get_body_argument(name,default=_ARG_DEFAULT,strip=True)
4. get_body_arguments(name,strip=True)
5. get_query_argument(name,default=_ARG_DEFAULT,strip=True)
6. get_query_arguments(name,strip=True):
簡介
一? RequestHandler.get_argument()和RequestHandler.get_arguments():
實際上是通過RequestHandler._get_argument()和RequestHandler._get_arguments()對HTTPServerRequest.arguments進行一些去空格心例,編碼惦银,默認值等操作深胳。HTTPServerRequest.arguments包括GET和POST請求的所有參數(shù)氮墨。
get_argument()實際上是獲取的get_arguments()[-1]埃儿。
class HTTPServerRequest(object):
attribute:arguments
GET/POST arguments are available in the arguments property, which
maps arguments names to lists of values (to support multiple values
for individual names). Names are of type `str`, while arguments
are byte strings.? Note that this is different from
`.RequestHandler.get_argument`, which returns argument values as
unicode strings.
二? RequestHandler.get_query_argument()和RequestHandler.get_query_arguments():
實際上是通過RequestHandler._get_argument()和RequestHandler._get_arguments()對HTTPServerRequest.query_arguments進行一些去空格入问,編碼辨图,默認值等操作。HTTPServerRequest.query_arguments只包括請求的url上所帶的參數(shù)猿妈。
class HTTPServerRequest(object):
attribute: query_arguments
Same format as ``arguments``, but contains only arguments extracted
from the query string.
二? RequestHandler.get_body_argument()和RequestHandler.get_body_arguments():
HTTPServerRequest.body_arguments只包括請求body里所帶的參數(shù)吹菱。
class HTTPServerRequest(object):
attribute: body_arguments
Same format as ``arguments``, but contains only arguments extracted
from the request body.
實例
1.? 獲取url后的參數(shù)
url = '127.0.0.1:8080/test?search_title=測試標題1&search_title=測試標題2&search_name=測試名稱&test_body=測試'
若存在多個重復(fù)的參數(shù)名,利用get_argument(),get_query_argument只能獲取最后一個彭则,即'測試標題2'毁葱。利用get_arguments(),get_query_arguments()能獲得一個unicode編碼的list,得到所有相同參數(shù)名的參數(shù)贰剥。
get_body_argument(),get_body_arguments()不能獲取url中的參數(shù)。
search_title =self.get_argument('search_title','') ?# 測試標題2
search_titles = self.get_arguments('search_title', []) ?# unicode編碼的list, 實際為[測試標題1筷频,測試標題2]
search_name =self.get_query_argument('search_name','') ?# 測試名稱
search_names =self.get_query_arguments('search_name',[])? # unicode編碼的list, 實際為[測試名稱]
test_body_argument = self.get_body_argument('test_body','') ?# ''
2. form表單序列化后的數(shù)據(jù)蚌成。
表單中多個同名<input name='step_title' />,利用get_arguments()和get_body_arguments()獲取list凛捏。
flow_title =self.get_argument('flow_title','') ?# 測試流程
test_flow_title=self.get_body_argument('flow_title','') ?# 測試流程
step_titles =self.get_arguments('step_title',[]) ?# list
tesst_step_titles=self.get_body_arguments('step_title',[]) ?# list
3. ?js相關(guān)
var data = {'test_arg', 'v1'} ?// 同個'test_arg'獲取
var list_data = {'test_arg', ['v1', 'v2']} // 通過'test_list[]'獲取
test_arg=self.get_argument('test_arg', '')
test_args=self.get_arguments('test_arg[]', '')? # 獲取到list
參考
1. ?tornado/web.py
2. ?tornado/httputil.py
3. ?tornado/escape.py