rest - Python Tornado: Delete request never ends -
rest - Python Tornado: Delete request never ends -
i having problems delete request in tornado. request arrives server , in handler work great, never returns response client.
i have tried returning something, "return" , without "return" , result same.
i using python 3.4, tornado 4.1 , restclient of firefox.
@web.asynchronous @gen.coroutine def delete(self, _id): try: model = model() model.delete(_id) self.set_status(204) except exception e: logging.error(e) self.set_status(500) homecoming
tornado documentation (tornado.web.asynchronous):
if decorator given, response not finished when method > returns. request handler phone call self.finish() finish > http request.
you need phone call tornado.web.requesthandler.finish method. work:
@web.asynchronous @gen.coroutine def delete(self, _id): try: model = model() model.delete(_id) self.set_status(204) except exception e: logging.error(e) self.set_status(500) self.finish() homecoming however, don't need asynchronous approach in example. work in same way:
def delete(self, _id): try: model = model() model.delete(_id) self.set_status(204) except exception e: logging.error(e) self.set_status(500) homecoming also, if using @gen.coroutine decorator, don't need utilize @web.asynchronous decorator. utilize @gen.coroutine, right way , much more elegant.
lastly, think should read this article understanding asynchronous programming in tornado.
python rest tornado python-3.4
Comments
Post a Comment