Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2013 21:04:46

young_programmer
Зарегистрирован: 2013-08-22
Сообщения: 32
Репутация: +  -2  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

Постепенно пытаюсь разобраться с tornado. Но с английским туго и с web фреймворками раньше дела не имел, объясните пожалуйста, зачем нужен метод RequestHandler.initialize() и когда он запускается?



Linux - это такая фэнтезийная MMORPG: эльфы в файлах, гномы на столах,
зомби в процессах, демоны в фоне, а на форумах сплошь тролли да красноглазые орки.

Офлайн

#2 Ноя. 20, 2013 02:42:07

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

Это вроде как конфигурирование хандлера после его создания. Используется например в хандлере раздачи статики, для настройки root пути.

Офлайн

#3 Ноя. 20, 2013 05:13:37

young_programmer
Зарегистрирован: 2013-08-22
Сообщения: 32
Репутация: +  -2  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

А разве все не на оборот? В примере в доках, в RequestHandler.initialize() передаётся экзмепляр БД, на сколько я понял.



Linux - это такая фэнтезийная MMORPG: эльфы в файлах, гномы на столах,
зомби в процессах, демоны в фоне, а на форумах сплошь тролли да красноглазые орки.

Отредактировано young_programmer (Ноя. 20, 2013 05:22:03)

Офлайн

#4 Ноя. 20, 2013 06:15:06

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

young_programmer
что тебе надо то и делает, тебе как-бы дают возможность вставить свой код на этом этапе.
Это что-то вроде __init__

Офлайн

#5 Ноя. 20, 2013 08:52:09

young_programmer
Зарегистрирован: 2013-08-22
Сообщения: 32
Репутация: +  -2  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

Singularity
Это что-то вроде __init__
Ну вот __init__ на пример запускается при создании экземпляра класса. А когда запускается RequestHandler.initialize?



Linux - это такая фэнтезийная MMORPG: эльфы в файлах, гномы на столах,
зомби в процессах, демоны в фоне, а на форумах сплошь тролли да красноглазые орки.

Офлайн

#6 Ноя. 20, 2013 08:58:04

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

при каждом конекте

Отредактировано Singularity (Ноя. 20, 2013 08:58:37)

Офлайн

#7 Ноя. 20, 2013 09:31:36

young_programmer
Зарегистрирован: 2013-08-22
Сообщения: 32
Репутация: +  -2  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

Спасибо



Linux - это такая фэнтезийная MMORPG: эльфы в файлах, гномы на столах,
зомби в процессах, демоны в фоне, а на форумах сплошь тролли да красноглазые орки.

Офлайн

#8 Ноя. 20, 2013 09:46:11

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

На каждый конект создается экземпляр хандлера, после конфигурируется (до вызова get/post), вот пример настройки StaticFileHandler, 3-й параметр должен передаваться в initialize:

application = web.Application([
    (r"/content/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
])

Отредактировано o7412369815963 (Ноя. 20, 2013 09:49:34)

Офлайн

#9 Ноя. 20, 2013 13:34:30

young_programmer
Зарегистрирован: 2013-08-22
Сообщения: 32
Репутация: +  -2  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

Если вы говорите, что RequestHandler.initialize запускается

o7412369815963
после конфигурируется (до вызова get/post)
то тогда в чем его разница с RequestHandler.prepare()??? Как я понимаю RequestHandler.initialize запускается при запуске сервера и в этот момент происходит инициализация, а RequestHandler.prepare запускается при вызове обработчика, перед вызовом (post, get или других).



Linux - это такая фэнтезийная MMORPG: эльфы в файлах, гномы на столах,
зомби в процессах, демоны в фоне, а на форумах сплошь тролли да красноглазые орки.

Офлайн

#10 Ноя. 20, 2013 13:53:06

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

tornado RequestHandler.initialize()

young_programmer
Как я понимаю RequestHandler.initialize запускается при запуске сервера и в этот момент происходит инициализация
Не логично, т.к. это метод для экземпляра, а экземпляр создается на каждый запрос. Но вы можете проверить добавить print в них (или продебажить).
young_programmer
RequestHandler.prepare
Про этот не знаю, наверно его ещё не было когда я юзал торнадо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version