2015-03-19 3 views
0

У меня есть верхняя панель в моем веб-приложении, которая является общей для всех страниц. Код для этого находится в отдельном html-файле, который называется, base.html, который включен во все остальные страницы (например, sample.html). Теперь я хочу загрузить переменные «уведомления» в base.html. Я хотел бы использовать отдельный обработчик, если возможно, для генерации уведомлений для base.html. Тем не менее, в настоящее время, как я понимаю, я должен вызвать def, чтобы сгенерировать его из каждой страницы обработчика, который я пишу/написал и передал. Есть ли более чистый способ сделать это, в результате чего мне не нужно менять другие обработчики страниц? Извините, если это глупый вопрос. Я довольно новичок в торнадо.обработчик для генерации глобальных переменных в торнадо

base.html 

// some html 
{{ notifications }} 


sample.html 

{% extends base.html %} 

// some html 

ответ

1

Способ сделать это с помощью UIModule. Создайте подкласс UIModule, который определяет метод render, передать его в ui_modules Dict к Application конструктора (ui_modules=dict(Notifications=NotificationsModule)), а затем вы можете вызвать его в шаблонах с {% module Notifications() %}