2017-05-04 14 views
-2

以下は私のハンドラコードです。竜巻では取得方法が許可されていないエラーを取得することができます。 私は何もかも不足していますか?竜巻は入札依頼を許可していません

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に使用していた「/」余分がありましたがあった。エラーメッセージは正確に何がエラーであるかを示唆していません。

これは誰かを助けることを願っています。

関連する問題