下面是我的处理程序代码,其中tornado允许获取请求,因为获取方法不允许错误。 我错过了一些事情吗?
class CustomerHandler(web.RequestHandler):
def get(self, customer_id):
data = retrieve_customer_data_from_customer_database(customer_id)
print(data)
self.write(data)
self.finish()
def put(self, data):
customer_data = data
data = json.loads(customer_data)
customer_id = customer_data['id']
update_customer_data(customer_id, data)
result_out = {}
result_out['status'] = True
self.write(json.dumps(result_out))
self.finish()
答案 0 :(得分:1)
再次检查缩进。此外,您正在寻找的data
可能是请求的正文。这是一个简单的例子:
import tornado.ioloop
import tornado.web
import json
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def put(self):
body = json.loads(self.request.body)
# do some stuff here
self.write("{} your ID is {}".format(body['name'], body['id']))
if __name__ == "__main__":
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
测试:
$ curl http://localhost:8888/ -XPUT -d '{"id": 123, "name": "John"}'
John your ID is 123
答案 1 :(得分:0)
问题是有额外的" /"我在从前端调用时使用put请求url,这就是为什么方法不允许错误存在的原因。虽然错误消息并不能说明错误是什么。
希望这会对某人有所帮助。