2010-12-06 2 views
7

Я имею в виду, я понимаю, что эти шаблоны нацелены на дизайнеров и других менее подкованных людей, но для разработчиков я считаю, что язык шаблонов - это просто хлопот. Мне нужно переосмыслить, как делать очень простые вещи, такие как итерация через словари или списки, которые я передаю в шаблон, и он даже не работает очень хорошо. Мне все еще не удается получить всю «точную» нотацию, как я ожидал бы (например, {{mydict.dictkey}} внутри цикла for не работает: S - я мог бы задать это как отдельный вопрос) , и я не понимаю, почему было бы невозможно просто использовать код python в системе шаблонов. В частности, я чувствую, что если шаблоны должны быть простыми, то уровень кода python, который должен использоваться в этих шаблонах, был бы не более сложным, чем текущий язык шаблонов. Таким образом, у этих дизайнеров не было бы больше проблем с изучением этого большого количества python, чем они изучали бы язык шаблонов Django (и есть больше мест, где вы можете пойти с этим знанием базового python, в отличие от DTL). И дополнительным преимуществом было бы то, что люди, которые уже знают, что python будет находиться на знакомой территории со всем обычным синтаксисом и мощностью, доступной для них, и может просто начать работу.Почему шаблоны django не используют код python?

Я что-то упустил? Если так, я умоляю джанго нооба и хотел бы, чтобы ты просветил меня по многим достоинствам нынешней системы. Но в остальном любые рекомендации по другим системам шаблонов, которые могут быть больше того, что я ищу?

+0

Короткий ответ: для дизайнеров веб-дизайна и шаблонов, которые разработчики фреймворков не обязательно имеют опыт программирования, и которые, по всей вероятности, будут работать вместе параллельно с программистами веб-приложений при создании всего веб-сайта. – Santa 2010-12-06 05:34:24

+1

кажется, что есть место для такого типа системы шаблонов. Я вижу, что все здесь объясняют это «дизайнеры - зло», «разделение слоев», когда на самом деле это довольно ограничено, и добавляет еще одну «путающую» разметку для каждой партии, связанной с определением и построением шаблонов. Было бы более полезно ограничить такое разделение с помощью правила организации и позволить шаблонам быть обычными классами, которые наследуют от основного шаблона, где могут использоваться как код разметки, так и код python. – 2010-12-06 12:17:30

+0

Да, я не совсем убежден (как я отмечаю в своем комментарии в ответе Рейфа), но я оставлю свое суждение, пока у меня больше опыта с этими вещами :). благодаря! – mindthief 2010-12-07 05:36:01

ответ

10

Причина, по которой большинство людей предпочитает ограниченные языки шаблонов, заключается в том, что они не хотят смешивать бизнес-логику своего приложения с ее презентацией (это не сработает с философией MVC; использование Django я уверен вы понимаете преимущества этого).

Daniel Greenfeld написал an article a few days ago explaining why he likes "stupid template languages", и многие люди написали ответы (см. Последние несколько дней по Planet Python). Если вы прочтете, что написал Даниил и как другие ответили на него, вы получите представление о некоторых аргументах за и против использования языков шаблонов для использования Python.

2

Не забывайте, что вы не ограничиваетесь только языком шаблонов Django. Вы можете использовать любую систему шаблонов, которая вам нравится, в ваших функциях просмотра. Однако вы хотите создать HTML для возврата из функции просмотра в порядке. В мире Python существует множество реализаций шаблонов: выберите тот, который вам подходит, и используйте его.

1

Отличие проблем.

Дизайнер делает дизайн. Разработчик делает разработку. Шаблоны написаны дизайнерами.

Дизайн и разработка являются независимыми и различными областями работы, которые обычно обрабатываются разными людьми.

Я предполагаю, что код шаблона в python будет работать очень хорошо, если вы разработчик, а их супруг - дизайнер. В противном случае пусть каждый выполняет свою работу с минимальным вмешательством.

Смежные вопросы