2017-05-04 7 views
-2

Ci-dessous est mon code de gestionnaire où tornado permet de faire une requête où obtenir une erreur de méthode non autorisée. Il me manque quelque chose d'obscène?Tornado ne permet pas de mettre la demande

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

Votre indentation est très fausse; S'il vous plaît, vérifiez-le, car cela pourrait en fait être le seul problème. – deceze

+0

désolé il était problème de formatage au niveau de dépassement de pile dans mon indentation de code est correct – sagar

Répondre

1

Vérifier à nouveau l'indentation. En outre, le data que vous recherchez est probablement dans le corps de la demande. Voici un exemple simple:

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

Et le test:

$ curl http://localhost:8888/ -XPUT -d '{"id": 123, "name": "John"}' 
John your ID is 123 
0

La question était là était extra «/» J'utilisais dans l'URL de la demande de vente tout en appelant de frontend, c'est pourquoi méthode non autorisée erreur était là. Bien que le message d'erreur ne suggère pas ce qu'est exactement l'erreur.

Espérons que cela aidera quelqu'un.