Если по вопросу "с какого фреймворка начинать в Питоне" еще есть плюрализм (от "Flask - он легковесный, наращиваешь сам и понимаешь как все работает" до "Django - в нем все есть, а чего нет, быстро доустанавливаешь"), то с шаблонизаторами все упростилось.
До недавнего времени шаблонизаторов было 3-4: Jinja, Mako, Genshi и, конечно, Django Templates.
Собственно, они никуда не делись, Genshi и сейчас используется по умолчанию в Turbogears 2, а Mako - в Pylons/Pyramid.
Но и Turbogears, и Django и Pyramid с недавнего времени поддерживают шаблонизатор, ставший популярным благодаря Flask - Jinja 2.
Давайте послушаем документацию:
Turbojears:
Pyramid:
Django:
Ну и, наконец, посмтрим на подборку генераторов статических сайтов (http://www.staticgen.com/): 11 из 17, в том числе самый популярный Pelican (http://docs.getpelican.com/) опираются на Jinja2.
Итого - вопрос с выбором шаблонизатора Python на сегодня не стоит.
До недавнего времени шаблонизаторов было 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 на сегодня не стоит.
Комментарии
Отправить комментарий