我的代码看起来像this。我只需要能够访问该对象。我来自javascript背景,我习惯于能够捕获响应对象并访问响应体,一切都很好。我不太明白我是如何访问它的。我试过form["key_name"].value
等但仍然没有回来。有人可以帮我从FieldStorage(None, None, '{"phrase":"work mudasucka!"}')
访问我的数据吗?我将不胜感激!
def do_POST(self):
if self.path=="/send":
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
print (form)
self.send_response(200)
self.end_headers()
return
#This is what prints in my console.
#FieldStorage(None, None, '{"phrase":"work mudasucka!"}')
答案 0 :(得分:1)
解决方案是一个简单的for
循环。我使用表单具有的.key()
方法循环使用表单键,并且能够使用.getvalue()
方法提取值。该方法采用key
的单个参数。工作就像一个魅力!
if self.path=='/getOne':
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
for key in form.keys():
value = str(form.getvalue(key))
t = ('%' + value + '%')
c.execute('select * from appointments where description like ?' , (t,))
res = c.fetchall()
_json = json.dumps(res)
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(_json)
print "I'm ya huckleberry", res
return