ТурбоГирс
![]() | |
Разработчик(и) | Кевин Дангур (первоначальный создатель), Марк Рамм (ведущая роль 2,0), Алессандро Молина (ведущая роль 2,1+) и др. |
---|---|
Первоначальный выпуск | сентябрь 2005 г |
Стабильная версия | 2.4.3 [1] ![]() |
Репозиторий | Репозиторий TurboGears |
Написано в | Питон |
Операционная система | Кросс-платформенный |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия MIT , LGPL |
Веб-сайт | www |
![]() | Эта статья может содержать чрезмерные или неуместные ссылки на самостоятельно опубликованные источники . ( Апрель 2024 г. ) |
TurboGears — это Python, платформа веб-приложений состоящая из нескольких компонентов WSGI, таких как WebOb , SQLAlchemy , Kajiki язык шаблонов и Repoze .
TurboGears разработан на основе архитектуры модель-представление-контроллер (MVC), очень похожей на Struts или Ruby on Rails , и предназначен для упрощения и упрощения быстрой разработки веб-приложений на Python. Начиная с версии 2.3, инфраструктура также предоставляет «минимальный режим», который позволяет ей действовать как микрофреймворк для использования в средах, где весь стек не требуется и нежелателен.
Компоненты TurboGears
[ редактировать ]TurboGears построен на основе множества разрозненных библиотек и промежуточного программного обеспечения. Инструменты по умолчанию изменились в сериях 1.x, 2.x и 2.3+, но большинство этих компонентов можно использовать в любой из них, поскольку существует поддержка многих альтернативных конфигураций. Ниже приведены основные компоненты, с которыми будет взаимодействовать разработчик.
Компоненты TurboGears 2.x
[ редактировать ]- SQLAlchemy ( Model ) — определяет структуры таблиц пользовательской базы данных и способы их связи с объектами Python, с которыми может взаимодействовать пользовательский контроллер.
- Ming ( Model ) — обеспечивает уровень доступа к данным для MongoDB, подобно тому, как SQLAlchemy определяет, как связать коллекции MongoDB с объектами Python, с которыми может взаимодействовать пользовательский контроллер.
- Kajiki (ранее Genshi ) ( View ) — определяет шаблоны для HTML или XHTML, которые будет генерировать пользователь. Здесь пользователь определяет интерфейс, с которым будет взаимодействовать клиент.
- Repoze — Repoze.who используется для обеспечения безопасности (идентификация и аутентификация). Пользователи могут определять правила авторизации на основе предикатов, прикрепленных к контроллерам. Платформа уже предоставляет некоторые встроенные предикаты, но можно написать и собственные.
- ToscaWidgets — это основная библиотека виджетов для создания форм и сложных графических интерфейсов. Tosca по умолчанию генерирует простые HTML-формы, но также может использоваться в качестве промежуточного программного обеспечения для подключения к более продвинутым виджетам и наборам инструментов JavaScript. В отличие от TurboGears 1.x, здесь больше нет предпочтительной/интегрированной библиотеки JavaScript. [2]
- Gearbox — это набор инструментов, используемый TurboGears для управления проектами, создания новых и обслуживания приложений TurboGears, но пользователь также может подключаться к Apache , Nginx или любому другому WSGI -совместимому веб-серверу.
Версии до 2.3 также будут использовать:
- Pylons ( Controller ) — это промежуточное программное обеспечение обрабатывает всю внутреннюю логику пользователя и подключается к веб-серверу пользователя, чтобы предлагать данные в Интернете.
- Paster представлял собой набор командных инструментов и веб-сервер, используемый вместо Gearbox.
- Repoze.what — используется для обработки авторизации соответственно. При определении элементов пользовательского контроллера, которые будут доступны в Интернете, предикаты repoze.what определяют, кто может получить к ним доступ и при каких условиях.
Компоненты TurboGears 1.x
[ редактировать ]- SQLObject (модель) — серверная часть данных, которая может создавать базу данных или интерфейс с существующими данными на многих серверах баз данных.
- SQLAlchemy планируется использовать по умолчанию в TurboGears >= 1.1.
- Kid (View) — механизм шаблонов внешнего интерфейса XHTML, где все шаблоны являются действительными файлами XHTML или XML, которые обычно создаются таким образом, чтобы можно было открывать эти шаблоны как простые файлы XHTML для проверки дизайна. В то же время предоставляются возможности для встраивания фрагментов Python в формате XML.
- Genshi является преемником Kid и заменит его в качестве шаблонизатора по умолчанию в TurboGears >= 1.1. Синтаксис почти на 100% совместим с Kid.
- CherryPy (Контроллер) — промежуточное программное обеспечение, которое позволяет программировать веб-приложения путем написания обработчиков событий, которые возвращают данные (в случае TurboGears) в шаблоны. Те же данные также можно получить методом Ajax в виде потока данных JSON .
- MochiKit — предпочтительная, но необязательная библиотека JavaScript для TurboGears 1.x. Он создан для того, чтобы сделать программирование на JavaScript более питоническим. Он в основном используется для реализации функций и виджетов Ajax , поскольку предоставляет интерфейс для асинхронного получения потоков данных JSON.
Плагины шаблонов
[ редактировать ]Языки шаблонов, отличные от Genshi, можно использовать через файл конфигурации приложения пользователя. В настоящее время в версии 2.1 поддерживаются следующие плагины: Myghty , Jinja2 , Mako , Cheetah и Kajiki. Поддержка детей в настоящее время не планируется, поскольку Генши практически идентичен. Этот список может продолжать меняться в будущих версиях.
История проекта
[ редактировать ]TurboGears был первоначально создан в 2005 году Кевином Дангуром в качестве основы для еще не выпущенного продукта Zesty News . [3] он выпустил его как фреймворк с открытым исходным кодом Когда в конце сентября 2005 года более 30 000 раз. , за первые 3 месяца его скачали [ нужна ссылка ]
Январь 2007 года Кевин Дангур ушел с поста руководителя проекта, и Альберто Вальверде стал его преемником. [4] но впоследствии ушел в отставку из-за других личных обязательств. Альберто по-прежнему участвует в сообществе TurboGears через свой проект ToscaWidgets . Проектом TurboGears в настоящее время управляет группа из примерно полдюжины основных разработчиков под руководством Марка Рамма (как руководителя разработки TurboGears 2) и Флорана Эйда (как менеджера по выпуску TurboGears 1.x).
В июне 2007 года сообщество начало эксперименты по размещению API TurboGears поверх компонентов и протоколов, используемых в Pylons , и появились предположения, что эти две платформы могут наконец объединиться. [5] Однако в официальной документации TurboGears 2 говорится, что это вряд ли произойдет из-за «разных, но совместимых приоритетов». [6] обоих проектов. Pylons хотел сосредоточиться на низкоуровневом расширяемом дизайне, в то время как TurboGears был сосредоточен на предложении полного, удобного для пользователя пакета, и поэтому они работают вместе во многом так же, как сейчас работают Debian и Ubuntu. Новая ветка 2.x выпустила свой первый стабильный выпуск в мае 2009 года.
По состоянию на осень 2008 года TurboGears имеет большое и здоровое сообщество, включающее более 3000 пользователей в список рассылки TurboGears, книгу Прентис Холла, опубликованную в ноябре 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 в рамках нового единого проекта под названием Pyramid . Из-за проблем с обратной совместимостью, которые может возникнуть в результате этого шага, а также из-за гарантии того, что TurboGears останется надежной платформой в долгосрочной перспективе, нынешняя команда решила сотрудничать с проектом Pylons во всем возможном, но не основывать ядро TurboGears на Pyramid. [7]
Дальнейшее развитие, поддержка Python 3 и повышение скорости произошли в ветке 2.3, в которой было полностью переписано ядро TurboGears, сохранив при этом его обратную совместимость с существующими приложениями, поскольку в этой версии TurboGears имело собственное ядро, а не было основано на платформе Pylons. . [8]
В серии 2.3 фреймворк экспериментировал с так называемым «минимальным режимом», который позволяет ему де-факто действовать как микрофреймворк, уменьшая количество зависимостей с десятков до всего 3 и размещая TurboGears между Flask и Django в розетке Python для своих целей, поскольку он нацелен на возможность масштабирования от микрофреймворка до полнофункциональной инфраструктуры в зависимости только от того факта, что используется пакет TurboGears2 или tg.devtools.
Начиная с версии 2.4, фреймворк теперь имеет архитектуру, основанную на модульных компонентах, которая позволяет пользователям включать и заменять компоненты по своему желанию, что позволяет TurboGears фактически выполнять свою миссию - быть веб-фреймворком, который масштабируется в соответствии с потребностями пользователей.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Рамм, М; Дангур, К; Сайфан Г. (7 ноября 2006 г.). Быстрые веб-приложения с TurboGears , Прентис Холл. ISBN 0-13-243388-5
Примечания
[ редактировать ]- ^ «Выпуск 2.4.3» . 1 марта 2020 г. Проверено 2 марта 2020 г.
- ^ Поваренная книга TurboGears2 — Создание и проверка форм
- ^ Кевин Дэнгур. «Краткая история TurboGears» . голубое небо на Марсе . Проверено 6 сентября 2021 г.
- ^ «У TurboGears новый лидер» . Кевин Дэнгур. 3 января 2007 г. Проверено 12 апреля 2007 г.
- ^ «Слияние пилонов» . Архивировано из оригинала 5 июля 2012 г. Проверено 27 июня 2007 г.
- ^ «Что нового в TurboGears 2» . Проверено 16 сентября 2008 г.
- ^ «Состояние шестерен» . Майкл Педерсен. 01.03.2012 . Проверено 18 марта 2013 г.
- ^ «Нестабильная версия TurboGears 2.3» . Алессандро Молина. 23 января 2013 г. Проверено 18 марта 2013 г.