Краткий обзор по TurboGears
Что такое TurboGears?

TurboGears – Web-Framework для веб-приложений, созданный для языка программирования Python. Изначально созданная в 2005 году человеком по имени Kevin Dangoor. Последняя версия фреймворка(2.4.3) управляется при помощи команды разработчиков, управляют которыми Марк Раммом и Флоран Аид.

Как и большинство современных web-фреймворков, фреймворк TurboGears следует парадигме Model-View-Controller. Пример подобных фреймворков это: Rails, Django, Struts и т.д.
MVC – это шаблон проектирования программного обеспечения для разработки веб-приложений. Модель контроллера представления модели состоит из трех частей:
Модель – самый низкий уровень шаблона отвечает за ведение данных.
Просмотр – это ответственность за отображение всех или части данных для пользователя.
Контроллер – программный код, который контролирует взаимодействие между моделью и представлением.
MVC довольно популярный шаблон проектирования, из-за изолирующей логики приложения от уровня пользовательского интерфейса, а также поддержания разделения задач. Контроллер получает все запросы для приложений и далее работает с моделью, чтобы подготовить любые данные, необходимые для представления. Далее представление использует данные, приготовленные контроллером, для генерации окончательного презентабельного ответа. Абстракции данного шаблона могут быть представлены следующим образом:

Модель
Если коротко, модель отвечает за управление данными приложения. Отвечает на запрос от представления и на инструкции от контроллера, для обновления себя
Вид
Представление данных в определенном формате, инициированное решением контроллера о представлении данных. Это основанные на сценариях системы шаблонов, которые очень легко интегрировать с технологией AJAX.
Контроллер
Контроллер отвечает за ответ на пользовательский ввод и выполнение взаимодействий с объектами модели данных. Контроллер получает входные данные, он проверяет входные данные, а затем выполняет бизнес-операцию, которая изменяет состояние модели данных.
TurboGears построен на основе ряда библиотек и инструментов. Эти инструменты были изменены в разных версиях TurboGears. Компоненты текущей версии (версия 2.4.3) перечислены ниже.
SQLAlchemy
Это набор SQL с открытым исходным кодом, который обеспечивает сопоставление отношений объектов (ORM) для кода Python.

Genshi
Этот шаблонизатор используется для создания внешнего интерфейса приложений TG. Система веб-шаблонов объединяет шаблон с определенным источником данных для отображения динамических веб-страниц.
ToscaWidgets
Это библиотека виджетов для генерации HTML-форм с серверными элементами управления. Tosca также выступает в качестве промежуточного программного обеспечения для связи с виджетами JavaScript и наборами инструментов.
Коробка передач
Он предоставляет набор команд для управления проектами и серверными приложениями TurboGears. Приложения TurboGears могут быть развернуты на любом веб-сервере, совместимом с WSGI.
Интерфейс шлюза веб-сервера (WSGI) был принят в качестве стандарта для разработки веб-приложений на Python. WSGI – это спецификация универсального интерфейса между веб-сервером и веб-приложениями. Пакет wsgiref является эталонной реализацией WSGI. Он используется для добавления поддержки WSGI в веб-фреймворк TurboGears. Модуль simple_server в этом пакете реализует простой HTTP-сервер, который обслуживает приложения WSGI. Мы будем использовать его для тестирования приложений, разработанных в этом уроке.