python访问FieldStorage数据

问题描述 投票:0回答:1

我的代码看起来像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!"}')
python rest cgi
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.