Pylons — программный каркас для разработки веб-приложений с открытым исходным кодом, написанный на языке Python. В нём широко используется стандарт WSGI, что способствует эффективности повторного использования кода и модульности.
В настоящее время развитие Pylons завершено на версии 1.0, а дальнейшего развития (помимо исправления ошибок) не планируется. В качестве основы для следующего поколения программного каркаса проекта Pylons взят программный каркас repoze.bfg, получивший в рамках проекта Pylons новое имя — Pyramid. Само название Pylons становится отныне зонтичным брендом.
Pylons является более новым программным каркасом, написанным на Python, нежели более ранние разработки Django и TurboGears. Он создавался с оглядкой на особенности, плюсы и минусы уже существующих веб-фреймворков, таких как Django, Ruby on Rails, TurboGears и других, и в нём была сделана попытка вобрать всё лучшее.
Однако, так как он полностью состоит из WSGI-приложений и прослоек (middleware), а не только на низких уровнях, как другие Python-фреймворки, он оказывается очень стройным и гибким с точки зрения архитектуры и возможности изменения компонентов и добавления функциональности. Pylons использует два компонента, являющихся прямыми аналогами компонентов Ruby on Rails, реализованными на Python: Routes и WebHelpers.
Структура Pylons Pylons почти полностью состоит из приложений, созданных сторонними разработчиками. Таким образом Pylons полностью следует принципу «Изобретено Не Здесь».
Установка, зависимости и настройка Рекомендуемый способ установки Pylons — установка с помощью EasyInstall через PyPI, и большинство дополнительных библиотек устанавливаются таким же образом. EasyInstall автоматически устанавливает недостающие пакеты, когда это необходимо.
Для работы с проектами Pylons использует утилиту Paste.
Диспетчеризация URL На данный момент Pylons широко использует диспетчер URL Routes — переписанный на Python диспетчер из фреймворка Ruby on Rails. Однако Pylons позволяет использовать любой WSGI-совместимый диспетчер URL.
Генерация HTML Для генерации HTML Pylons также использует компонент из Ruby on Rails, переписанный на Python. Этот компонент называется WebHelpers и предоставляет карту URL, построенную компонентом Routes. WebHelpers также предоставляет несколько полезных функций для генерации JavaScript-кода, использующего Prototype или script.aculo.us.
Работа с формами Для работы с формами Pylons использует компоненты FormEncode и FormBuild. Эти компоненты, в некоторых случаях, используют шаблонизатор Mako, для генерации HTML кода форм.
Шаблоны в Pylons До версии 0.9.6, Pylons использовал шаблонизатор Myghty. После версии 0.9.6 в Pylons используется шаблонизатор Mako. Оба шаблонизатора основаны на использовании текста(text-based), а не XML (xml-based) и поддерживают, наследование и встраивание произвольного Python кода.
В связи с тем, что компоненты в Pylons слабо связаны — можно использовать и другие шаблонизаторы, такие как Genshi и Jinja2.
Абстрагирование от Баз Данных и ORM в Pylons В Pylons нет библиотеки для работы с базами данных, используемой по умолчанию. Одинаково часто применяются SQLAlchemy и SQLObject.
См. также Ruby on Rails Django TurboGears Catalyst CherryPy
Ссылки Форум по Pylons — форум по Pylons. Pylons Project home page — страница проекта Pylons. Pylons Book — «Полное руководство по Pylons» Джеймса Гарднера. Пробуем Pylons, часть 1: install, db setup Пробуем Pylons, часть 2: views Перевод 1 и 2 глав Pylons Book Sluggo’s Python Stuff — примеры, уроки и трюки от Майкла Орра — одного из разработчиков Pylons Pylons.com.ua — веб-сайт о фреймворке Pylons Pylons Quick Site Development Руководство по быстрому созданию сайта на Pylons Мое решение — Pylons — вводная статья по Pylons с ссылками на дополнительные источники
Основные средства Pylons реализованы с помощью следующих пакетов: EasyInstall — создание установка Pylons и других модулей Python Python Paste — Project setup, тестирование и развертывание, веб-сервер Routes — реализация URL подстановок (routing), аналог Rails routes Myghty — Caching, Templating и т. п. Mako — гибкий и очень быстрый язык шаблонов, пришедший на замену Myghty. FormEncode — валидация форм и перевод значений формы из строк в типы Python. WebHelpers — функции HTML Helper (генерация HTML с помощью Python) SQLAlchemy — реализация ORM для представлений баз данных в моделях Jinja2 — быстрый и гибкий шаблонизатор с изменяемым синтаксисом, схожий с шаблонизатором Django
Литература
Категория:Свободные библиотеки программ Категория:Веб-фреймворки на Python