установить заголовки для всех запросов в торнадо

Я устанавливаю заголовки для своих запросов следующим образом:

class ContactInfoHandler(tornado.web.RequestHandler):
    def set_default_headers(self):
        print "setting headers!!!"
        self.set_header("Access-Control-Allow-Origin", "*")
        self.set_header("Access-Control-Allow-Headers", "x-requested-with")
        self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')

    def get(self, *args, **kwargs):
        self.write('something')

Я должен сделать это для всех моих обработчиков. Есть ли способ сделать это для всего моего проекта Tornado?


person ehsan shirzadi    schedule 24.02.2017    source источник


Ответы (1)


Вы можете написать обработчик, унаследованный от tornado.web.RequestHandler, тогда все обработчики, используемые в качестве API, могут быть унаследованы от этого обработчика. Вот пример ниже.

from tornado.web import RequestHandler

class BaseHandler(RequestHandler):
    def get(self, *args, **kwargs):
        self.write("say something")

    def set_default_headers(self, *args, **kwargs):
        self.set_header("Access-Control-Allow-Origin", "*")
        self.set_header("Access-Control-Allow-Headers", "x-requested-with")
        self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")

Сделав этот шаг, вы можете полностью унаследовать возможности BaseHandler, написав обработчики, унаследованные от BaseHandler.

class ContactInfoHandler(BaseHandler):
    def get(self, *args, **kwargs):
        self.write("something")

class TestInfoHandler(BaseHandler):
    def post(self, *args, **kwargs):
        self.write("test result is here")
person EUPHORAY    schedule 24.02.2017