Я сделал несколько небольших проектов Django, и каждый раз меня поражали очевидные ограничения языка шаблонов Django.Как случайный пример, я был шокирован, узнав, что если в контексте шаблона у меня есть переменная bar и dict foo, я не смогу получить доступ к foo [bar], если не написал свой собственный фильтр для этого.
Я читал, что причина этого в том, что Django был создан для сред, где люди, разрабатывающие страницы, не были программистами.Я это понимаю.
Но скажем, для меня это не проблема.Есть ли причина, по которой я должен придерживаться языка шаблонов Django, а не переключаться на что-то с гораздо большей мощью, как Mako (где вы даже можете выполнять произвольные выражения Python)?
У меня была возможность использовать Мако для школьного проекта некоторое время назад, и мне очень понравилась его сила.Например, в рамках проекта нам нужно было создать большую таблицу, в которой построение каждой строки и ячейки было довольно сложным.Тем не менее, я мог бы заставить мой шаблон выглядеть примерно так:
<table>
% for foo in foos:
${makerow(row)}
% endfor
</table>
<%def name="makerow(row)">
<tr>
# Blah blah blah (possibly a call to makecell somewhere)
</tr>
</%def>
Может быть, это нарушение разделения представления и логики, но, черт возьми, это красиво и чисто.Подпрограммы!Абстракция!Хорошие вещи.
И дополнительный вопрос: если сообщество Django не осуждает использование альтернативного языка шаблонов, кто-нибудь может предложить?Как я уже сказал, мне действительно нравится Мако, но я буквально единственный, кого я использовал, кроме Джанго.