Система PyErrata

sistema pyerrata Сервер PyMailCGI

Теперь, когда я поведал вам обо всех причинах, которые могли бы препятствовать созданию систем для Веб, я собираюсь высказать совершенно противоположное мнение и представить систему, которая просто обязана быть реализованной в виде веб-приложения. Во втором издании этой книги присутствовала глава, описывающая веб-сайт PyErrata — программу на языке Python, которая позволяла любому посетителю, с любого компьютера отправлять комментарии и отчеты об обнаруженных ошибках (или опечатках) через Интернет, используя лишь веб-броузер. Такая система должна хранить информацию на сервере, чтобы она была доступна произвольному клиенту.

Из-за нехватки места в книге эта глава была исключена из книги в третьем издании. Однако ее содержимое было включено в состав пакета примеров для книги как дополнительная литература. Файл с главой вы найдете в каталоге PP4E\Internet\Web\Py- Er rata1 в пакете примеров для книги (подробнее о пакете примеров рассказывается в предисловии к книге).

PyErrata в некоторых отношениях проще примера PyMailCGI, представленного в этой главе. С точки зрения пользователя система PyErrata скорее иерархическая, чем линейная: взаимодействие с пользователем короче и порождает меньше страниц. Кроме того, в PyErrata мало данных состояния сохраняется в самих страницах — параметры URL передают состояние только в одном отдельном случае, и не генерируется скрытых полей форм.

С другой стороны, PyErrata вводит совершенно новое измерение: постоянное хранилище данных (persistent data storage). Состояние (сообщения об ошибках и комментарии) постоянно хранится этой системой на сервере, в плоских файлах или в базе данных, реализованной на основе модуля shelve. В обоих случаях присутствует призрак одновременного обновления, так как в одно и то же время обратиться к сайту может любое количество пользователей киберпространства. По этой причине в PyErrata используется также механизм блокировки файлов.

Я больше не поддерживаю веб-сайт, о котором рассказывается в этой дополнительной главе, а представленные в ней сведения несколько устарели. Например, теперь для блокировки файлов предпочтительнее использовать функцию os.open. Я мог бы также использовать другие современные системы хранения данных, такие как ZODB. Программный код в примерах к этой главе и код, входящий в состав пакета с примерами, написан для Python 2.X. И сам сайт лучше было бы реализовать как блог или Вики (понятия и названия, возникшие после того, как этот сайт был создан). Однако программа PyErrata является дополнительным примером реализации веб-сайта на языке Python, и она достойно представляет веб-сайты, которые должны хранить информацию на сервере.

Инструменты и приемы

В этой части книги собраны дополнительные темы, касающиеся разработки приложений на языке Python. Большинство представленных здесь инструментов может быть использовано в самых разных областях прикладного программирования.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий