Pylons | это... Что такое Pylons? (original) (raw)
Pylons
Тип | Программный каркас для создания веб-приложений |
Разработчик | Бен Бангерт, Джеймс Гарднер |
Операционная система | Кроссплатформенный |
Последняя версия | 1.3 (21 марта 2012 г.) |
Лицензия | Лицензия BSD |
Сайт | pylonshq.com |
Pylons — программный каркас для разработки веб-приложений (web application framework) с открытым исходным кодом, написанный на языке 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.
См. также
Ссылки
- Форум по 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
Литература
- James Gardner The Definitive Guide to Pylons. — Apress, 2008. — 568 с. — ISBN 9781590599341
Python | |
---|---|
Люди | Гвидо ван Россум |
Реализации | ChinesePython • CLPython • CPython • JPype • Jython • IronPython • PyPy • Python for S60 • Psyco • Stackless Python • Unladen Swallow |
Фреймворки | CherryPy • Django • Flask • GAE framework • Pylons • Pyramid • Quixote • TurboGears • Twisted • Web2py • Zope |
IDE | Boa Constructor • Eclipse+PyDev • Eric • Geany • IDLE • Komodo • NetBeans • PyCharm • PyScripter • SPE |
Библиотеки | Beautiful Soup • NLTK • NumPy • PIL • Pygame • PyGTK • Pyparsing • PyQt • SciPy • SQLAlchemy |
Другое | ActivePython • PyPI • Python Software Foundation • Лицензия Python |
Веб-фреймворки | |
---|---|
ASP.NET | DotNetNuke • ASP.NET MVC • MonoRail |
ColdFusion | ColdSpring • Fusebox • Mach-II • Model-Glue |
Java | Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK |
JavaScript | node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap |
Perl | Catalyst • Interchange • Titanium • Maypole • HTML:Mason |
PHP | Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY • Drupal • Fuse • Horde • Kohana • LiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • Yii • Zend • Zoop • Joomla |
Python | CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope |
Ruby | Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino |
Прочиеязыки | Alpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL) |