For faster navigation, this Iframe is preloading the Wikiwand page for TurboGears.

TurboGears

Матеріал з Вікіпедії — вільної енциклопедії.

TurboGears
ТипВебфреймворк
РозробникKevin Dangoor (оригінальний розробник), Mark Ramm (TG2 lead)
Перший випусквересня 2005
Стабільний випуск2.4.0[1] (10 травня 2019; 5 років тому (2019-05-10))
Версії2.4.3 (1 березня 2020)[2]
Платформа Кросплатформенний
Мова програмуванняPython
Українська мованемає
ЛіцензіяMIT License, LGPL
Репозиторійgithub.com/TurboGears/tg2
Вебсайтwww.turbogears.org

TurboGears (укр. ТурбоГірз) — вебфреймворк, написаний мовою програмування Python, що складається з декількох WSGI-компонентів: WebOb, SQLAlchemy, Genshi[en] та Repoze.

TurboGears побудовано на архітектурному шаблоні модель-вид-контролер (англ. Model-view-controller, MVC), так само як Struts або Ruby on Rails. Використання TurboGears робить розробку вебдодатків на мові Python простішою і доступнішою для підтримки. Починаючи з версії 2.3 фреймворк має «мінімальний режим», який дозволяє йому працювати як мікро-фреймворк[en]. Режим мікро-фреймворку доцільно використовувати в середовищах, де не потрібен весь стек.

Компоненти TurboGears

[ред. | ред. код]

TurboGears побудовано на базі численних різнорідних бібліотек та проміжного програмного забезпечення. Засоби за замовчуванням змінилися між версіями 1.x, 2.x та 2.3+, але більшість цих компонентів може бути використана у будь-якій версії фреймворку. Це дає можливість для створення великої кількості альтернативних конфігурацій. Нижче наведено основні компоненти фреймоворку.

Компоненти TurboGears 1.x

[ред. | ред. код]
  • SQLObject (Model) — backend даних, який може створити базу даних або інтерфейс з набором існуючих даних.
    • SQLAlchemy встановлено за замовчуванням у TurboGears з версії 1.1.
  • Kid[en] (Вид) — XHTML frontend двигун шаблонів, де всі шаблони є дійсними XHTML або XML-файлами, які зазвичай створюються таким чином, щоб була можливість відкривати ці шаблони як прості XHTML-файли для перевірки дизайну. Одночасно існує можливість вбудовувати фрагменти на мові Python в манері притаманній XML.
    • Genshi[en] наступник Kid і замінить його в якості шаблону двигуна за замовчуванням в TurboGears з версії 1.1. Це компонент майже на 100 % синтаксис-сумісний з Kid.
  • CherryPy (Controller) — проміжне програмне забезпечення, що дозволяє розробляти вебдодатки, записуючи обробники подій, які повертають дані шаблонам (у випадку TurboGears). Ті ж дані можуть бути отримані в AJAX як потік даних JSON.
  • MochiKit[en] — краща, але необов'язкова бібліотека JavaScript для TurboGears 1.x. Цей компонент призначено для того, щоб зробити програмування в JavaScript більш «пітонічним» (у відповідності до філософії та стандартів мови Python). В основному він використовується для реалізації функцій та віджетів AJAX, оскільки він надає інтерфейс для отримання потоків даних JSON асинхронним способом.

Компоненти TurboGears 2.x

[ред. | ред. код]
  • SQLAlchemy (Модель) — визначає як зв'язати колекції MongoDB з об'єктами Python, з якими може взаємодіяти контролер користувача.
  • Ming (Модель) — забезпечує рівень доступу до даних для MongoDB, схоже на те як SQLAlchemy визначає як зв'язати колекції MongoDB з об'єктами Python, з якими може взаємодіяти контролер користувача.
  • Genshi[en] (Вигляд) — визначає шаблони для HTML або XHTML, які буде створено користувачем. Тут користувач сам визначає інтерфейс, з яким клієнт буде взаємодіяти.
  • Repoze — Repoze.who використовується для керування безпекою (ідентифікації та аутентифікації). Користувачі можуть визначати правила авторизації, засновані на предикатах, прикріплених до контролерів, у фреймворку вже є деякі вбудовані предикати, але деякі можуть бути написані самостійно.
  • ToscaWidgets2 — основна бібліотека віджетів для створення форм і складних графічних інтерфейсів. Tosca за замовчуванням генерує прості HTML-форми, але також може бути використана як проміжне програмне забезпечення для підключення до більш просунутих віджетів JavaScript і інструментальних засобів. На відміну від TurboGears 1.x, бібліотека JavaScript більше не використовується[3].
  • Gearbox — інструментарій, який використовується TurboGears для управління проєктами, створенням нових і обслуговуванням додатків TurboGears, але користувач також може підключатися до Apache, Nginx, або будь-яких інших сумісних з WSGI.

До версії 2.3 також може використовуватися:

  • Pylons (Контролер) — проміжне програмне забезпечення обробляє всю локальну логіку користувача, підключається до вебсервера користувача та передає дані в Інтернет.
  • Paste[en] — командний інструментарій і вебсервер, який використовувався замість Gearbox.
  • Repoze.what — використовується для обробки авторизації. При визначенні елементів контролера користувача, які піддаються впливу мережі, предикати repoze.what визначають, хто може отримати до них доступ і за яких умов.

Шаблон плагінів

[ред. | ред. код]

Мови шаблонів, окрім Genshi[en], можна використовувати через конфігураційний файл програми користувача. Плагіни, що наразі підтримуються в 2.1 це Myghty, Jinja, Mako, Cheetah[en], та Kajiki. Підтримка Kid в даний час не планується, оскільки Genshi практично ідентичний плагін. Цей список може змінюватися в майбутніх версіях.

Історія проєкту

[ред. | ред. код]

TurboGears спочатку було створено у 2005 році Кевіном Дангуром як фреймворк для ще не випущеного проєкту Zesty News. Коли в кінці вересня 2005 року він опублікував його як фреймворк з відкритим вихідним кодом, за перші 3 місяці він отримав більше 30 000 завантажень скринкастингів.

У січні 2007 року Кевін Дангур пішов у відставку як керівник проєкту, Альберто Вальверде став керувати проєктом як його наступник[4], але згодом також пішов у відставку через інші особисті зобов'язання. Альберто все ще бере участь у спільноті TurboGears через свій проєкт ToscaWidgets2. Проєкт TurboGears зараз спільно керується групою з приблизно півдюжини основних розробників на чолі з Марком Раммом (ведучій розробник TurboGears 2) та Флораном Айде (менеджер релізу Turbogears 1.x).

У червні 2007 року співтовариство почало експерименти, щоб зробити TurboGears API головним компонентом та протоколом, який використовується в Pylons і з'явилося припущення, що ці два фреймворки можуть нарешті об'єднатися[5]. Тим не менш, офіційна документація TurboGears 2 стверджує, що це навряд чи відбудеться через «різні, але сумісні пріоритети»[6] обох проєктів. Pylons хотіли залишатися зосередженими на низькому рівні, розширенні дизайну, в той час як TurboGears зосередилися на наданні повного, зручного для користувача пакету. Але вони співпрацюють багато в чому так само, як Debian і Ubuntu зараз. Нова гілка 2.x мала свій перший стабільний реліз у травні 2009 року.

Станом на осінь 2008 року, TurboGears має велике та життєздатне співтовариство з понад 3000 користувачів в списку розсилки, опубліковану в листопаді 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's як нового уніфікованого проєкту під назвою Pyramid. У зв'язку з проблемами зворотної сумісності цього кроку, та гарантіями TurboGears бути надійною платформою в довгостроковій перспективі, нинішня команда вирішила співпрацювати з проєктом Pylons у всьому можливому, але не на основі ядра TurboGears на Pyramid[7].

Подальша розробка, підтримка Python 3 і поліпшення швидкості відбулися в гілці 2.3, в якій було повністю переписано ядро TurboGears, зберігаючи при цьому зворотну сумісність з існуючими додатками. Починаючи з версії 2.3 TurboGears має власне ядро, і не використовує фреймворк Pylons[8].

В серії 2.3 фреймворк експериментував з так званим «мінімальним режимом», який дозволяє діяти як мікро-фреймворк де-факто зменшуючи залежності від 10-х до всього 3-х. Що дозволило позиціонувати TurboGears між Flask і Django в родині фреймворків на Python, оскільки він має на меті масштабуватися від мікро-фреймворку до повноцінного фреймворку в залежності від того який пакет використовується — TurboGears2 або tg.devtools.

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]
  • Ramm, M; Dangoor, K; Sayfan, G (November 7, 2006). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0-13-243388-5

Посилання

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Статус проєкту. Архів оригіналу за 16 липня 2019. Процитовано 20 липня 2019.(англ.)
  2. Release 2.4.3 — 2020.
  3. TurboGears2 Cookbook — Widgets & Forms [Архівовано 11 липня 2018 у Wayback Machine.](англ.)
  4. TurboGears has a new leader. Kevin Dangoor. 3 січня 2007. Архів оригіналу за 18 березня 2016. Процитовано 12 квітня 2007.(англ.)
  5. Pylons Merge. Архів оригіналу за 5 липня 2012. Процитовано 27 червня 2007.(англ.)
  6. What’s new in TurboGears 2. Архів оригіналу за 25 вересня 2020. Процитовано 16 вересня 2008.(англ.)
  7. State of the Gears. Michael Pedersen. 1 березня 2012. Процитовано 18 березня 2013.(англ.)
  8. TurboGears 2.3 unstable release. Alessandro Molina. 23 січня 2013. Процитовано 18 березня 2013.(англ.)
{{bottomLinkPreText}} {{bottomLinkText}}
TurboGears
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?