Джанго: Переход на Jinja2? - PullRequest
55 голосов
/ 02 декабря 2010

У меня есть пара небольших (500 или 600 строк шаблонного кода) сайтов Django, и я хотел бы перенести их на использование Jinja2… Но я хотел бы получить представление о том, сколько это будет работать,Итак, в целом, как много работы по переносу небольшого сайта Django в Jinja2?И стоит ли это того?

Ответы [ 4 ]

52 голосов
/ 04 декабря 2010

Хотя это всего лишь мой собственный опыт, я нашел, что преобразование из Django в Jinja2 имеет смысл по следующим причинам:

  1. Разработка и реализация Jinja2 показались мне более интуитивными, как в качестве программного обеспеченияразработчик и дизайнер шаблонов;
  2. Jinja2 более расширяем (по крайней мере, в тех способах, которые я искал для расширения моего механизма шаблонов);
  3. Jinja2 более гибок в плане разрешения логического кодабегать (но это дает вам достаточно веревки, чтобы повеситься);
  4. Jinja2 считается значительно более быстрым (хотя я не делал никаких тестов, это всегда подлежит обсуждению в зависимости от используемых тестов, ив любом случае в значительной степени не имеет отношения к общему времени ожидания запроса, который должен выполнять поиск в БД);
  5. Jinja2 дает значительно более полезный вывод ошибок, чем Django (т. е. отслеживает номер строки в шаблоне, гдепроизошла ошибка). Редактировать : Согласно комментарию Дор, Джанго дает полезное сообщение об ошибкеесли они указывают на суть и контекст проблемы, во многом как Jinja2.

Если у вас не было проблем с механизмом шаблонов Django, Jinja2 должен чувствовать себя относительно интуитивно, если, возможно, немного более отточенным(во всяком случае, для меня).Кроме того, я нашел проект Coffin хорошо написанным и достаточно полезным при преобразовании из Django в Jinja2 - как для его использования, так и в качестве примера того, как расширить Jinja2.

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

Опять же, это всего лишь мой опыт, насколько он того стоит - я надеюсь, что это полезно.

4 голосов
/ 26 мая 2014

Есть также Джанго-дзиндзя.https://github.com/niwibe/django-jinja

Новый и красивый проект.http://niwibe.github.io/django-jinja/

Он утверждает, что является простой и необременительной интеграцией jinja2 с Django.

3 голосов
/ 02 декабря 2010

Судя по тому, что вы сказали, переход на Jinja2 может не стоить того.В шаблонах Django есть фильтры, которые могут помочь вам выполнить любые математические операции.

Что касается операций со списком, о чем конкретно вы говорите?Если вы хотите, чтобы в шаблоне поддерживалась какая-то конкретная операция со списком, напишите пользовательский фильтр .

. Существуют также математические фильтры сторонних производителей для Django .

Если подумать, то по замыслу в шаблонах Django не слишком много "программных конструкций".HTML шаблоны должны быть такими ...

2 голосов
/ 12 апреля 2012

Два проекта, которые пытаются интегрировать Jinja в Django с помощью простых шагов интеграции и приятных перехватов с Django -

  1. Гроб
  2. Chouwa

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

...