Tornado сложнее, чем Django или Flask, и используется гораздо реже. Работайте с ним только в том случае, если прирост производительности, связанный с применением асинхронного фреймворка, будет стоить дополнительного времени, затраченного на программирование. Если решитесь, хорошей стартовой точкой станут демонстрационные приложения (https://github.com/tornadoweb/tornado/tree/master/demos). Качественно написанные приложения Tornado славятся отличной производительностью.
Pyramid
Pyramid (http://www.pylonsproject.org/) похож на Django, однако больший упор в нем делается на модульность. Поставляется вместе с несколькими встроенными библиотеками (меньшее количество функциональности доступно сразу) и поощряет расширение его базовой функциональности с помощью шаблонов, которые называются временными платформами.
Вы регистрируете временную платформу, а затем вызываете ее при создании нового проекта с помощью команды pcreate — аналогично команде Django django-admin startproject project-name command, но у вас имеются параметры для работы с разными структурами, бэкендами для баз данных и маршрутизацией URL.
Pyramid не очень востребован у пользователей, в отличие от Django и Flask. Это хороший фреймворк, но он не считается популярным выбором для создания новых веб-приложений на Python.
По адресу http://docs.pylonsproject.org/projects/pyramid-tutorials можно найти несколько руководств для Pyramid. Чтобы убедить вашего босса использовать Pyramid, взгляните на портал https://trypyramid.com/, где имеется большой объем информации о Pyramid.
Движки для веб-шаблонов
Большая часть приложений WSGI предназначена для реагирования на запросы HTTP и обслуживания содержимого в формате HTML или других языках разметки. Движки шаблонов отвечают за отрисовку этого содержимого: управляют набором файлов шаблонов, имеют систему иерархии и включения, позволяющую избежать лишнего повторения, и заполняют статическое содержимое шаблонов динамическим содержимым, сгенерированным приложением. Это помогает придерживаться
Файлы шаблонов иногда пишутся дизайнерами или фронтенд-разработчиками, и сложность страниц может усложнить координирование. Рассмотрим правила хорошего тона как для приложений, передающих динамическое содержимое движку, так и для самих шаблонов.
•
•
Все движки шаблонов, перечисленные в табл. 7.4, принадлежат ко второму поколению, их скорость отрисовки высока90, а функциональность создана благодаря опыту работы со старыми библиотеками шаблонов.
Таблица 7.4. Движки шаблонов
Библиотека Python
Лицензия
Причины использовать
Jinja2
Лицензия BSD
По умолчанию используется в Flask и поставляется с Django.
Основана на языке шаблонов Django Template Language, в шаблоны можно добавить лишь немного логики.
Jinja2 — это движок по умолчанию для Sphinx, Ansible и Salt (если вы использовали эти инструменты, вы знаете Jinja2)
Chameleon
Модифицированная лицензия BSD
Шаблоны сами по себе являются корректными XML/HTML.
Похожа на Template Attribute Language (TAL) и его derivatives
Mako
Лицензия MIT
Используется по умолчанию в Pyramid.
Разработана для повышения скорости выполнения программы — используйте, когда отрисовка шаблона ограничена во времени.
Позволяет поместить большое количество кода в шаблоны — Mako похож на версию Python для PHP (http://php.net/)
В следующих разделах приводится более подробная информация о библиотеках из табл. 7.4.
Jinja2