Pylons Project — это организация с открытым исходным кодом , которая разрабатывает набор технологий веб-приложений, написанных на Python . Изначально проект представлял собой единый веб-фреймворк под названием Pylons, но после слияния с фреймворком repoze.bfg под новым названием Pyramid, проект Pylons теперь состоит из нескольких связанных технологий веб-приложений.
Pyramid — это веб-фреймворк с открытым исходным кодом, написанный на Python и основанный на WSGI . Это минималистичный веб-фреймворк, вдохновленный Zope , Pylons и Django . [3]
Первоначально названный "repoze.bfg", Pyramid привлек внимание в основном в сообществах Zope [4] и Plone , поскольку проект KARL Института открытого общества перешел с Plone на BFG. [5] В 2010 году было объявлено, что фреймворк Pylons перейдет на использование BFG в качестве основы в версии 1.5. [6] В результате включения BFG в проект Pylons, BFG был переименован в Pyramid. [7]
Pyramid — это минималистичный, независимый от платформы веб-фреймворк. Он не зависит от сохранения и интегрируется как с базами данных SQL через SQLAlchemy , так и с Zope Object Database , а также с другими базами данных NoSQL , такими как CouchDB . [3]
Pyramid позволяет разработчикам определять маршруты с помощью регулярных выражений , которые сопоставляются с объектами. Как и его коллега-фреймворк Zope, Pyramid также допускает иерархический обход объектов, где каждая часть URL-адреса является объектом, содержащим другие объекты, способом, который похож на папки в файловой системе. [8]
Pylons Framework — это фреймворк веб-приложений с открытым исходным кодом , написанный на Python . Он широко использует стандарт Web Server Gateway Interface для содействия повторному использованию и разделения функциональности на отдельные модули. [11] Он находится под сильным влиянием Ruby on Rails : два его основных компонента, Routes и WebHelpers, являются переопределениями функций Rails на Python.
Компания Pylons хорошо известна тем, что имеет практически полный набор сторонних инструментов, избегая феномена «изобретено не здесь» .
Официальный метод установки Pylons — через EasyInstall через Python Package Index (PyPI), и большинство дополнительных инструментов обычно устанавливаются таким же образом. EasyInstall также обрабатывает зависимости пакетов, когда это необходимо. Некоторые дистрибутивы также могут упаковывать Pylons и Paste , но вполне вероятно, что пакеты любого дистрибутива будут отставать от официального дистрибутива. Pylons также можно установить вручную, переименовав его файл .egg в .zip и извлекая содержимое.
Paste используется для настройки, тестирования и развертывания проекта. Используя общий формат конфигурации INI , Paste допускает несколько «профилей», так что разработчики могут запускать настройки разработки и развертывания из одной и той же кодовой базы, не раскрывая чувствительные части Pylons, такие как интерактивный отладчик, производственным пользователям.
В настоящее время единственным широко используемым диспетчером URL для Pylons является Routes, Python-реализация диспетчеризации URL Ruby on Rails, хотя можно использовать любой совместимый с WSGI диспетчер URL. Хотя Routes — это отдельная библиотека, она была разработана для использования в Pylons, и ее разработка тесно синхронизирована с Pylons.
Другая часть Rails, адаптированная для Pylons, — это WebHelpers, которая обеспечивает сопоставление URL-адресов на основе конфигурации Routes. WebHelpers также предоставляет некоторые служебные функции для генерации кода JavaScript с использованием библиотек script.aculo.us и Prototype .
FormEncode и FormBuild используются для проверки и генерации HTML-форм; Mako в некоторых случаях использовался для генерации форм с использованием модели наследования Mako.
Myghty был языком шаблонов Pylons по умолчанию, но с версии 0.9.6 он был заменен на Mako . [12] Оба языка шаблонов основаны на тексте (в отличие от основанных на XML ), и их поддержка включает наследование и встраивание произвольного кода Python.
Из-за слабосвязанных слоев Pylons можно использовать и другие языки шаблонизации. Genshi , язык шаблонизации на основе XML, можно использовать вместо Mako или Myghty. [13]
У Pylons нет библиотеки базы данных по умолчанию. Известно, что используются как SQLObject , так и SQLAlchemy.
Pylons развился в Pylons Project, а старый код из Pylons 1.0 теперь находится в режиме только для обслуживания. Однако, в соответствии с объединением проекта с repoze.bfg с ноября 2010 года, новые версии Pylons фактически отличаются от оригинального Pylons 1.0. Разработчики Pylons изначально планировали переписать некоторые части кода, но они заметили, что новый код приближался к repoze.bfg, что привело к слиянию Pylons и repoze.bfg. [14] [15] Это привело к тому, что repoze.bfg (часть веб-фреймворка Repoze на основе Python) был переименован и перезапущен как веб-фреймворк Pyramid. [16]