I'm using tornado, and have a bunch of handlers that map to different urls. For example :
#mainfile.py
#imports
#...
application = tornado.web.Application([
(r"/", DefaultHandler),
(r"/somepath", SomepathHandler),
], debug=True)
if __name__ == "__main__":
tornado.options.parse_command_line()
port = int(os.environ.get("PORT", 8001))
application.listen(port)
tornado.ioloop.IOLoop.instance().start()
Now, in DefaultHandler and SomepathHandler, I don't like the way error messages are displayed, so I decided to overwrite the write_error method like this :
#DefaultHandler.py
class DefaultHandler(tornado.web.RequestHandler):
def write_error(self, status_code, **kwargs):
self.write("a nicer message")
def initialize(self):
#stuff
def get(self):
#more stuff, etc.
And then
#Somepathhandler.py
class SomepathHandler(tornado.web.RequestHandler):
def write_error(self, status_code, **kwargs):
self.write("a nicer message")
And this will surely continue with other handlers. I read the Tornado docs, and it seems like I should be subclassing class tornado.web.RequestHandler(application, request, **kwargs)
, but have not managed to do so successfully. I'm not quite sure where the class should go, and how can I make it register with my application?
thanks!