我有一个非常简单的扭曲脚本,你可以在其中处理POST请求:
class FormPage(Resource):
isLeaf = True
def render_GET(self, request):
return b"""<html><body><form method="POST"><input name="form-field" type="text" /></form></body></html>"""
def render_POST(self, request):
return '<html><body>You submitted: %s</body></html>' % (cgi.escape(request.args["form-field"][0]),)
factory = Site(FormPage())
reactor.listenTCP(80, factory)
reactor.run()但每当我运行此程序并填写该框时,我都会得到错误信息:
builtins.KeyError: 'form-field'有人能告诉我为什么会这样吗?谢谢!!
发布于 2016-05-25 01:38:31
我找到了一个使用request.content.read()的解决方案
def render_POST(self, request):
return '<html><body>You submitted: %s</body></html>' % (request.content.read())这可能不是最好的解决方案,但它对我很有效。如果你有更好的解决方案,请发表意见,谢谢!
发布于 2017-09-11 01:42:43
找到了解决方案。我在Python3里做“O‘’Reily”被困了很长一段时间。以下是对我有效的方法:
def render_POST(self, request):
return_value = "<html><body>You submitted: %s </body></html>" % (cgi.escape(str(request.args[b"form-field"][0], 'utf-8')))
return str.encode(return_value)我猜我遇到麻烦的第一个原因是,可以在python代码中提取的表单字段是字节字符串。直到我检查了请求参数之后,我才意识到这一点。我想在python2中,它是一个普通的字符串。
https://stackoverflow.com/questions/37398611
复制相似问题