python 访问 FieldStorage 数据

python access FieldStorage data

我的代码看起来像 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!"}')

解决方案是一个简单的 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