Подразумевается, что подавляющее большинство современных продуктов на питоне работает под python 2.5+, в то время как портирование продукта под третью версию каждый раз событие, так как это единичные случаи. Решил выделить отдельно.
Тоесть, {% module Template(path_to_template...) %} делает хитрый include другого шаблона, распихивая его (гипотетические) {% block headers_css %} {% block headers_js %} в соотвествующие места исходного шаблона?
Или {% module Template() %} это частный случай {% module Foo() %}
UI Module вызвается просто как функция {{ modules.Entry(entry) }}
а мне про новый тэг {% module %} непонятно.
или это просто разные формы одного и тогоже?
Почти одни и те же, но внутренние пути в приложении ощутимо различаются. Подробнее тут comments.gmane.org/gmane.comp.python.tornado/163 поясняется, как это связано с новым подходом к добавлению escape символов, внятностью синтаксиса шаблонов и т.д.
Очень радует, что перевели (или сделали совместимым, скорее) на 3.2 python. Пора бы уже многим так делать, третий питон имеет много вкусных плюшек, да и значимое улучшение GIL радует.
Ну, меня в 2.6+ смущают только кодировки строк, все остальное можно пережить с небольшими хаками, кроме этого бесконечного источника багов. Все-таки веб это в большинстве своем работа с текстовой информацией.
так точно, конкретно он не использует, ибо весь смысл его в избежании оверхеда от переключения. Но зачастую в реальных проектах, которые его используют все же приходится применять потоки, на Хабре описывался пример такого приложения — habrahabr.ru/search/?q=%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D1%8F%D0%B6
Да, сам Торнадо это однопоточные воркеры в каждом из которых крутится свой ioloop, конечно же нам ничего не мешает дернуть поток из кода в статье про опыт создания трельяжа хорошо описано, как корректно это производить.
Вышел Tornado Web Server 2.0 RC