python访问FieldStorage数据

时间:2018-02-17 14:03:55

标签: python rest cgi

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

1 个答案:

答案 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