TurboGears - Википедия - TurboGears
Разработчики) | Кевин Дангур (оригинальный создатель), Марк Рамм (Отведение TG2) и др. |
---|---|
изначальный выпуск | Сентябрь 2005 г. |
Стабильный выпуск | 2.4.3[1] / 1 марта 2020 |
Репозиторий | Репозиторий TurboGears |
Написано в | Python |
Операционная система | Кроссплатформенность |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия MIT, LGPL |
Интернет сайт | www |
TurboGears это Python каркас веб-приложений состоящий из нескольких WSGI компоненты, такие как WebOb, SQLAlchemy, Генши и Репо.
TurboGears разработан на основе модель – представление – контроллер (MVC), как и Стойки или же Рубин на рельсах, призванный сделать быструю разработку веб-приложений на Python более простой и удобной в обслуживании. Начиная с версии 2.3 фреймворк также предоставляет «минимальный режим», который позволяет ему действовать как микрофреймворк для использования в средах, где весь стек не требуется и не нужен.
Компоненты TurboGears
TurboGears построен на основе множества разрозненных библиотек и промежуточного программного обеспечения. Инструменты по умолчанию изменились между сериями 1.x, 2.x и 2.3+, но большинство этих компонентов можно использовать в любой из них, поскольку существует поддержка многих альтернативных конфигураций. Ниже приведены основные компоненты, с которыми может взаимодействовать разработчик.
Компоненты TurboGears 2.x
- SQLAlchemy (Модель ) - определяет структуры таблиц базы данных пользователя и способы их связывания с объектами Python, с которыми контроллер пользователя может взаимодействовать.
- Мин (Модель ) - обеспечивает уровень доступа к данным для MongoDB, так же как SQLAlchemy определяет, как связать коллекции MongoDB с объектами Python, с которыми может взаимодействовать пользовательский контроллер.
- Генши (Вид ) - определяет шаблоны для HTML или XHTML, которые создает пользователь. Здесь пользователь определяет интерфейс, с которым будет взаимодействовать клиент.
- Репо - Repoze.who используется для обеспечения безопасности (идентификации и аутентификации). Пользователи могут определять правила авторизации на основе предикатов, прикрепленных к контроллерам, платформа уже предоставляет некоторые встроенные предикаты, но можно написать собственные.
- ToscaWidgets - это основная библиотека виджетов для создания форм и сложных графических интерфейсов. По умолчанию Tosca генерирует простые HTML-формы, но также может использоваться в качестве промежуточного программного обеспечения для подключения к более продвинутым виджетам и инструментам JavaScript. В отличие от TurboGears 1.x, больше нет предпочитаемой / интегрированной библиотеки JavaScript.[2]
- Gearbox - это набор инструментов, используемый TurboGears для управления проектами, создания новых и обслуживания приложений TurboGears, но пользователь также может подключиться к Apache, Nginx, или любой другой WSGI -совместимый веб-сервер.
Версии до 2.3 также будут использовать:
- Пилоны (Контроллер ) - это промежуточное ПО обрабатывает всю внутреннюю логику пользователя и подключается к веб-серверу пользователя, чтобы предлагать данные в Интернете.
- Пастер был набором инструментов и веб-сервером, который использовался вместо Gearbox.
- Repoze.what - используется для обработки авторизации соответственно. При определении элементов контроллера пользователя, которые будут доступны в Интернете, предикаты repoze.what определяют, кто может получить к ним доступ и при каких условиях.
Компоненты TurboGears 1.x
- SQLObject (Модель) - серверная часть данных, которая может создавать базу данных или взаимодействовать с существующими данными на многих серверах баз данных.
- SQLAlchemy планируется сделать по умолчанию в TurboGears> = 1.1.
- Дитя (Просмотр) - движок шаблонов внешнего интерфейса XHTML, где все шаблоны являются действительными файлами XHTML или XML, которые обычно создаются таким образом, чтобы можно было открывать эти шаблоны как простые файлы XHTML для проверки дизайна. В то же время предоставляются функции для встраивания фрагментов Python в XML-стиле.
- Генши является преемником Kid и заменит его в качестве движка шаблонов по умолчанию в TurboGears> = 1.1. Он почти на 100% совместим по синтаксису с Kid.
- CherryPy (Контроллер) - промежуточное программное обеспечение, которое позволяет программировать веб-приложения путем написания обработчиков событий, возвращающих данные в (в случае TurboGears) шаблоны. Эти же данные можно получить и в Аякс мода как JSON поток данных.
- MochiKit является предпочтительной, но необязательной библиотекой JavaScript для TurboGears 1.x. Он разработан, чтобы сделать программирование на JavaScript более питоническим. В основном он используется для реализации Аякс функции и виджеты, поскольку он предоставляет интерфейс для асинхронного получения потоков данных JSON.
Плагины шаблонов
Языки шаблонов кроме Генши можно использовать через файл конфигурации приложения пользователя. Плагины, поддерживаемые в настоящее время в версии 2.1: Myghty, Jinja2, Мако, Гепард, и Кадзики. Поддержка детей в настоящее время не планируется, поскольку Генши практически идентичен. Этот список может продолжать изменяться в будущих версиях.
История проекта
TurboGears был первоначально создан в 2005 году компанией Кевин Дангур в качестве основы для еще неизданного Zesty News товар. Когда он выпустил его как Открытый исходный код framework в конце сентября 2005 г. было получено более 30 000 скринкаст скачиваний в первые 3 месяца.[нужна цитата ]
Январь 2007 г. Кевин Дангур ушел с поста руководителя проекта и Альберто Вальверде руководил проектом как его преемник,[3] но впоследствии ушел в отставку из-за других личных обязательств. Альберто по-прежнему участвует в сообществе TurboGears через его ToscaWidgets проект. Сейчас проектом TurboGears совместно управляет группа из примерно полдюжины основных разработчиков под руководством Марк Рамм (в качестве руководителя разработки TurboGears 2) и Флоран помощник (как менеджер выпуска Turbogears 1.x).
В июне 2007 года сообщество начало эксперименты по размещению TurboGears API поверх компонентов и протоколов, используемых в Пилоны и было предположение, что эти две платформы могут, наконец, объединиться.[4] Однако в официальной документации TurboGears 2 указано, что это маловероятно из-за «разных, но совместимых приоритетов».[5] обоих проектов. Pylons хотел сосредоточиться на низкоуровневом расширяемом дизайне, в то время как TurboGears был сосредоточен на предоставлении полного, удобного для пользователя пакета, и поэтому они работают вместе во многом так же, как Debian и Ubuntu сейчас. Новая ветка 2.x выпустила свой первый стабильный выпуск в мае 2009 года.
По состоянию на осень 2008 года TurboGears имеет большое и здоровое сообщество с более чем 3000 пользователей в списке рассылки TurboGears, книге от Prentice Hall опубликовано в ноябре 2006 г., и ряд Открытый исходный код и собственные приложения TurboGears, развернутые в реальном мире. Разработка продвигается умеренными, но стабильными темпами, а также недавно была поддержана успешным участием проекта в качестве Google Summer of Code в 2008 и 2009 годах. Программа TurboGears 1.1, направленная на то, чтобы помочь устаревшим сайтам перейти на версию 2.x, была выпущена в октябре 2009 года. В настоящее время разрабатывается новая версия книги, чтобы обновить ее в соответствии с изменениями, внесенными TurboGears 2 привел.
В 2010 году проект несколько сорвался. Ведущие разработчики были отозваны из-за реальных проблем. Однако к концу января 2011 года проект начал реорганизовываться и работать над тем, чтобы вернуться в нормальное русло. После нескольких месяцев наведения инфраструктуры и решения проблем с кодированием TurboGears удалось выпустить новые версии (2.0.4 и 2.1.2).
В 2013 году, сохранив обратную совместимость, проект отошел от кодовой базы Pylons для поддержки Python 3, обеспечения ускорения и упрощения процесса установки. Это привело к выпуску версии 2.3.0 в августе 2013 года. Также было объявлено о более быстром цикле выпуска, который должен приводить к выпуску отладочного выпуска каждые ~ 3 месяца.
Будущее TurboGears
Разработка TurboGears сейчас сосредоточена в первую очередь на новой ветке 2.x, при этом версия 2.3 теперь является основным направлением с поддержкой Python 3.
Путь перехода от ветви 1.x к ветви 2.x предоставляется в выпусках 1.1 и 1.5, в которых ORM и языки шаблонов по умолчанию были перемещены в соответствии с используемым в серии 2.x. Команда TurboGears дала понять новым пользователям, что 2.x - это будущее, а 1.x просто поддерживается для удобства существующих пользователей.
В течение 2011 года ведущие разработчики TurboGears вели переговоры с проектом Pylons, чтобы объединить их усилия с ними и разработчиками Repoze.BFG в качестве нового унифицированного проекта под названием Пирамида. Из-за проблем с обратной совместимостью, которые могут возникнуть у этого шага, а также из-за того, что TurboGears будет надежной платформой в долгосрочной перспективе, нынешняя команда решила сотрудничать с Pylons Project во всем, что только возможно, но не основывать ядро TurboGears на Pyramid.[6]
Дальнейшая разработка, поддержка Python 3 и улучшения скорости произошли в ветке 2.3, в которой было полностью переписано ядро TurboGears с сохранением его обратной совместимости с существующими приложениями, поскольку этот выпуск TurboGears имел собственное ядро, а не основывалось на структуре Pylons. .[7]
В течение серии 2.3 фреймворк экспериментировал с так называемым «минимальным режимом», который позволял ему действовать как микро-фреймворк, де-факто сокращая зависимости с десятков до всего 3 и размещая TurboGears между Flask и Django в розе python для достижения своих целей, поскольку он нацелен на возможность масштабирования от микро-инфраструктуры до структура полного стека в зависимости только от того, что используется пакет TurboGears2 или tg.devtools.
Смотрите также
Рекомендации
- Рамм, М; Дангур, К; Сайфан Г. (7 ноября 2006 г.). Быстрые веб-приложения с TurboGears, Прентис Холл. ISBN 0-13-243388-5
Примечания
- ^ «Выпуск 2.4.3». 1 марта 2020 г.. Получено 2 марта 2020.
- ^ Поваренная книга TurboGears2 - Создание и проверка форм
- ^ «У TurboGears новый лидер». Кевин Дангур. 2007-01-03. Получено 2007-04-12.
- ^ "Слияние пилонов". Архивировано из оригинал на 2012-07-05. Получено 2007-06-27.
- ^ «Что нового в TurboGears 2». Получено 2008-09-16.
- ^ "Состояние шестеренок". Майкл Педерсен. 2012-03-01. Получено 2013-03-18.
- ^ «Нестабильная версия TurboGears 2.3». Алессандро Молина. 2013-01-23. Получено 2013-03-18.