2017-05-04 2 views
-2

다음은 내 처리기 코드입니다. 여기 토네이도는 메소드를 가져올 수없는 오류로 요청을받을 수 있습니다. 나는 뭔가를 분별력이 없습니까?토네이도는 put 요청을 허용하지 않습니다.

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() 
+1

들여 쓰기가 잘못되었습니다. 그것이 실제로 유일한 문제 일 수 있기 때문에 두 번 확인해주십시오. – deceze

+0

죄송합니다. 내 코드 들여 쓰기에서 스택 오버플로 측면에서 문제가 발생했습니다. – sagar

답변

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 
0

가 "/"프론트 엔드에서 호출하는 동안 내가 PUT 요청 URL에 사용되었으며, 그 이유는 허용되지 않는 방법 오류의 다음은 간단한 예제 거기. 오류 메시지는 정확히 오류가 무엇인지는 제시하지 않습니다.

희망이 있으면 도움이 될 것입니다.

관련 문제