Какой Шаблонизатор для Python использовать?

Если по вопросу "с какого фреймворка начинать в Питоне" еще есть плюрализм (от "Flask - он легковесный, наращиваешь сам и понимаешь как все работает" до "Django - в нем все есть, а чего нет, быстро доустанавливаешь"), то с шаблонизаторами все упростилось.

До недавнего времени шаблонизаторов было 3-4: Jinja, Mako, Genshi и, конечно, Django Templates.

Собственно, они никуда не делись, Genshi и сейчас используется по умолчанию в Turbogears 2, а Mako - в Pylons/Pyramid.

Но и Turbogears, и Django и Pyramid с недавнего времени поддерживают шаблонизатор, ставший популярным благодаря Flask - Jinja 2.

Давайте послушаем документацию:

Turbojears:

Jinja provides yet another template rendering solution for TurboGears, but it has a couple of advantages for specific situations:
  • It is super fast,
  • It’s syntax was inspired by django-templates and dojo’s DTL so if you are migrating from Django it’s the natural choice.
  • It lacks some of the most hated (anti)features of django templates.
    • you can do template logic
    • Autoescaping is off by default.
  • It is sandboxable, so it’s possible to let non-trusted users edit the templates.

Pyramid:

We just said Pyramid doesn't prefer one templating language over another. Time to prove it. Jinja2 is a popular templating system, used in Flask and modeled after Django's templates. Let's add pyramid_jinja2, a Pyramid add-onwhich enables Jinja2 as a renderer in our Pyramid applications.

Django:

A Django project can be configured with one or several template engines (or even zero if you don’t use templates). Django ships built-in backends for its own template system, creatively called the Django template language (DTL), and for the popular alternative Jinja2. Backends for other template languages may be available from third-parties.

Ну и, наконец, посмтрим на подборку генераторов статических сайтов (http://www.staticgen.com/): 11 из 17, в том числе самый популярный Pelican (http://docs.getpelican.com/) опираются на Jinja2.

Итого - вопрос с выбором шаблонизатора Python  на сегодня не стоит.












Комментарии