При создании более сложных веб-приложений фреймворки могут взять на себя значительную часть низкоуровневых операций и предоставить более структурированные и мощные приемы реализации динамических сайтов. Кроме простых CGI-сценариев, мир Python полон сторонних веб-фреймворков, таких как Django — высокоуровневый фреймворк, поддерживающий быструю разработку, имеющий понятную и практичную архитектуру, обеспечивающий прикладной интерфейс динамического доступа к базе данных и свой собственный язык шаблонов для использования на стороне сервера; Google App Engine — фреймворк «облачных вычислений», предоставляющий инструменты уровня предприятия для использования в сценариях на языке Python и позволяющий сайтам использовать веб-инфраструктуру Google; и Turbo Gears — интегрированная коллекция инструментов, в число которых входят библиотека JavaScript, система шаблонов, инструмент веб-взаимодействий CherryPy и механизм SQLObject доступа к базам данных, использующий модель классов Python.
К категории фреймворков также относятся Zope — открытый сервер веб-приложений и набор инструментов, написанный на языке Python и расширяемый с его помощью, при использовании которого веб-сайты реализуются с применением базовой объектно-ориентированной модели; Plone — конструктор веб-сайтов на основе Zope, который предоставляет реализацию модели документооборота (называется системой управления содержимым), позволяющую авторам добавлять новое содержимое на сайт; и другие популярные системы конструирования веб-сайтов, включая pylons, web2py, CherryPy и Webware. Многие из этих фреймворков основаны на архитектуре MVC (modelview—controller — модель-представление-контроллер), получившей широкое распространение, и большинство из них предоставляют решение проблемы сохранения информации о состоянии в базе данных. Некоторые из них используют модель ORM (object relational mapping — объектно-реляционного отображения), с которой мы познакомимся в следующей части книги. Эта модель обеспечивает отображение классов Python в таблицы реляционной базы данных, а фреймворк Zope хранит объекты сайта в объектно-ориентированной базе данных ZODB, которую мы также будем рассматривать в следующей части.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011