Почему шаблоны django просто не используют код Python? - PullRequest
7 голосов
/ 06 декабря 2010

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

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

Ответы [ 4 ]

10 голосов
/ 06 декабря 2010

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

Даниэль Гринфельд несколько дней назад написал статью, объясняющую, почему ему нравятся "глупые языки шаблонов" , и многие люди писали ответы (см. последние несколько дней на Планета Питон ).Если вы прочитаете, что написал Даниэль, и как другие ответили на него, вы получите представление о некоторых аргументах за и против того, чтобы языки шаблонов могли использовать Python.

2 голосов
/ 06 декабря 2010

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

1 голос
/ 06 декабря 2010

Разделение интересов.

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

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

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

0 голосов
/ 30 мая 2018

Шаблоны Django не просто используют код Python по той же причине, по которой Django использует парадигму MVC:
Нет конкретной причины .
(То есть: та же самая причина, по которой кто-либо вообще использует MVC, и причина в том, что некоторые люди предпочитают эту жесткую философскую модель.)

В целом, я бы посоветовал вам избегать Джанго, если вам не нравятся такие вещи, потому что люди Джанго не будут менять этот подход. Однако вы также можете сделать что-то глупое (в том смысле, что это противоречит философии выбранного программного обеспечения), например, поместить всю разметку и все, что вы можете в «просмотр» файлов, превратив Django из его «MVC» (или "MTV") примерно то же, что и все остальное (скучный, но простой комок).

...