解析tornado查詢參數:self.request.query_arguments
self.get_query_argument[s](參數名稱)
解析tornado的post參數:self.request.body_arguments
self.get_body_argument[s](參數名稱)
get,post解析參數都可:self.get_argument[s](參數名稱)
原始的post參數:post_data = self.request.body.decode('utf-8')
headers參數:self.request.headers,對象(字典對象)
在項目中解析post參數時,發現以下問題:
request.body_arguments可以擷取到form資料,但不能擷取到curl過來的json資料
request.body.decode('utf-8')可以擷取到所有的資料,但是是原始資料。
如果原始資料是curl過來json資料:直接json.loads(***)即可。
如果原始資料是form資料:直接json.loads(*)将抛出異常,因為資料格式是: username=abc%E5%8C%97%E4%BA%AC&email=&website=abc&language=%E4%B8%AD%E5%9B%BD
解決方法:
post_data = self.request.body_arguments
post_data = {x: post_data.get(x)[0].decode("utf-8") for x in post_data.keys()} if not post_data:
post_data = self.request.body.decode('utf-8')
post_data = simplejson.loads(post_data)

聲明:本部落格原創内容,歡迎轉發,轉載請來源:www.likeinlove.com/info/48.html。
很贊哦!(
12)