龙卷风不允许提出请求

时间:2017-05-04 11:47:08

标签: python tornado put

下面是我的处理程序代码,其中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()

2 个答案:

答案 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,这就是为什么方法不允许错误存在的原因。虽然错误消息并不能说明错误是什么。

希望这会对某人有所帮助。