Как настроить маршрутизацию торнадо для обработчика с параметрами инициализации?

#python #tornado

#python #tornado

Вопрос:

Я создаю веб-сервер tornado. Для одного из обработчиков требуются параметры инициализации. Как настроить список маршрутизации, чтобы я мог передавать значения для параметров?

 class ActionHandler():
    def __init__(self, p1, p2):
        self.p1 = p1
        self.p2 = p2

    async def post(self, action):
        x = self.p1 
        y = self.p2
        # ....

app = tornado.web.Application([
    ('/action', ActionHandler) # How to pass init parameters?
 

Ответ №1:

В документации отмечается, что вы не должны переопределять __init__ метод RequestHandler подкласса. Если вы хотите передать начальные аргументы обработчику, используйте этот initialze метод.

 class ActionHandler():
    def initialze(self, p1, p2):
        self.p1 = p1
        self.p2 = p2

# then pass these arguments in a dict 
# when you register the route
app = tornado.web.Application([
    ('/action', ActionHandler, {'p1': 'Hello', 'p2': 'World'}),
])