Подтвердить что ты не робот

Django: Переход на Jinja2?

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

4b9b3361

Ответ 1

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

  • Дизайн и реализация Jinja2 казались мне более интуитивными, как разработчиком программного обеспечения, так и разработчиком шаблонов;
  • Jinja2 более расширяемый (по крайней мере, так, как я пытался расширить свой механизм шаблонов);
  • Jinja2 более гибкий с точки зрения разрешения логического кода, который должен быть запущен (но он дает вам достаточно веревки, чтобы повесить себя);
  • Jinja2 считается значительно быстрее (хотя я не делал никаких тестов, это всегда подлежит обсуждению в зависимости от используемых тестов и в любом случае в значительной степени не имеет отношения к общему времени ожидания запроса, который должен выполнять DB поиски);
  • Jinja2 дает значительно более полезный вывод ошибки, чем Django (т.е. отслеживает номер строки в шаблоне, где произошла ошибка). Изменить. Согласно комментарию Dor, Django дает полезные сообщения об ошибках, указывающие на линию и контекст проблемы, как Jinja2.

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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