Джанго: переход на Jinja2?


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

4 53

4 ответа:

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

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

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

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

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

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

новый и хороший проект. http://niwibe.github.io/django-jinja/

Он утверждает, что это простая и необструктивная интеграция jinja2 с Django.

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

  1. гроб
  2. Chouwa

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

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

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

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

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