Сценарии на языке Python способны поддерживать полноценные базы данных на стороне сервера, обеспечивающие более надежное хранение данных. Более подробно мы будем рассматривать эту возможность в главе 17. Сценарии на языке Python могут использовать самые разные механизмы хранения данных на стороне сервера, включая плоские файлы, хранилища объектов, объектно-ориентированные базы данных, такие как ZODB, и реляционные базы данных SQL, такие как MySQL, PostgreSQL, Oracle и SQLite. Помимо хранения данных такие системы могут предоставлять дополнительные инструменты, такие как транзакции и отмена операций, синхронизация параллельных изменений и многие другие.
Полноценные базы данных являются самым мощным решением проблемы хранения данных. Они могут использоваться для сохранения состояния между обращениями к страницам в пределах одного сеанса (помечая данные ключами, генерируемыми для каждого сеанса) и между сеансами (помечая данные ключами, генерируемыми для каждого пользователя).
Для каждого конкретного пользователя, например, CGI-сценарии могут извлекать из базы данных на сервере все данные об этом пользователе, собранные в прошлом. Серверные базы данных идеально подходят для сохранения более сложной информации о сеансах — приложение покупательской корзины, например, может сохранять элементы, добавленные в прошлом в базе данных на сервере.
Базы данных сохраняют данные между обращениями к страницам и сеансами. Поскольку данные сохраняются явно, нет никакой необходимости встраивать их в параметры запроса или в скрытые поля форм страниц ответа. Поскольку данные хранятся на сервере, нет никакой необходимости сохранять их на стороне клиента в виде cookies. И поскольку в таких схемах хранения используются многоцелевые базы данных, на них не действуют ограничения на объем данных и другие количественные показатели, характерные для cookies.
В обмен на дополнительные возможности, полноценные базы данных требуют приложения дополнительных усилий по установке, обслуживанию и использованию в программах. К счастью, как будет показано в главе 17, реализация доступа к базам данных из программ на языке Python отличается удивительной простотой. Кроме того, интерфейсы к базам данных в языке Python могут использоваться в любых приложениях, как с веб-интерфейсом, так и в других.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011