Форум сайта python.su
Подскажите, пожалуйста, какой-нибудь простой шаблонизатор для питона, чтобы хотя бы понимал условную конструкцию.
Например, в html-шаблоне написать <p>${if notFound : print “ничего не найдено” }</p>
Офлайн
http://www.makotemplates.org/
Впрочем, вкусовые предпочтения могут различаться.
Офлайн
Я jinja2 использовал.
Офлайн
Пользовался ZPT, Nevow, Django, сейчас работаю с Genshi.
Пока выбор остановил на Genshi, но посматриваю в сторону XSLT. Так как с ZPT работал довольно давно, нужно бы освежить память. Вообще, разрываюсь между несколькими движками. Фаворитами для себя считаю Genshi, XSLT и ZPT.
> <p>${if notFound : print “ничего не найдено” }</p>
Считаю это дурнейшим вкусом. Еще один PHP хочешь получить? Не должен в шаблоне присутствовать код. Хотя полностью от императивщины избавиться очень сложно.
p.s. И шаблонов много и написано про них не мало, можно, например вот это почитать – http://habrahabr.ru/blogs/about_cms/22018/
..bw
Отредактировано (Ноя. 15, 2009 07:20:35)
Офлайн
пробовал mako и jinja2, сейчас юзаю джинжу
Офлайн
bwПочему дурнейшим вкусом? Почему не должен присутствовать код?
Считаю это дурнейшим вкусом. Еще один PHP хочешь получить? Не должен в шаблоне присутствовать код. Хотя полностью от императивщины избавиться очень сложно.
Отредактировано (Июнь 19, 2010 17:48:12)
Офлайн
TruewarЧтобы человек, имеющий доступ к шаблону не мог обрушить всю систему. Код в шаблоне опасен инъекциями.
Почему не должен присутствовать код?
Офлайн
LexanderНо ведь этот код условный. Он же парсится регулярными выражениями, а занчит будет выполнено только то, что предусмотрено.TruewarЧтобы человек, имеющий доступ к шаблону не мог обрушить всю систему. Код в шаблоне опасен инъекциями.
Почему не должен присутствовать код?
А мне XML-подобные шаблоны не нравятся. Монстрообразны.
Вообще темя шаблонов вроде бы изъезжена, но все равно остается актуальной, т.к. ни один из существующих шаблонов не является “серебряной пулей” :)
Офлайн
Truewarпринцип везде одинаков, т.е. цель. тут надо смотреть на удобство, функционал и скорость.
Я пока не пойму никак принципиальной разницы между записью xml`образных языков шаблонов и языков с {%} =)
Офлайн
Тогда вырисовывается интересный вариант:
1. Принимаем некий синтаксис шаблонов, понятный дезигнерам
2. Парсим его, но не каждый раз при обращении к страничке, а один раз, формируя не хтмл, а код Python и пишем его в отдельный файл. Получая что-то вроде модуля шаблона. Этот модуль можно будет импортировать.
На выходе получаем очень хорошую скорость работы.
Кто что думает по этому поводу?
Офлайн