Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011-kl-lab1.doc
Скачиваний:
5
Добавлен:
12.11.2019
Размер:
642.05 Кб
Скачать

Бібліотека Python містить засоби створення серверів.

Модуль SocketServer містить базові класи, на основі яких пишуться як потокові (TCP), так і датаграммные (UDP) сервери, як многопроцессные (використовуючі os.fork()), так і багатопотокові (multithreading).

Модуль BaseHTTPServer містить базові класи для створення HTTP-серверів.

Модуль SimpleHTTPServer розвиває ці базові класи і дозволяє програмістові писати реакції на запити GET, HEAD і POST.

Модуль CGIHTTPServer дозволяє розширювати функціональність сервера зовнішніми програмами.

Модулі asyncore і asynchat дозволяють писати асинхронні (на основі select/poll) клієнти і сервери. Найбільш відомі асинхронні сервери - однопоточный многопротокольный сервер Medusa і зроблений на її основі багатопотоковий ZServer, що є ядром сервера web-застосувань Zope. Найбільш відомий клієнт: Asynchronous HTTP Client.

Крім мережевих протоколів, Python дозволяє маніпулювати і з даними, бігаючими поверх цих протоколів. Модуль rfc822 дозволяє читати дані у форматі відповідного RFC і отримувати інформацію про заголовки повідомлення.

Модуль mimetools розширює rfc822 у бік відповідного стандарту і дозволяє розбирати складні складені повідомлення.

Модуль MimeWriter дозволяє їх створювати.

Модулі binhex, uu, binascii, base64, quopri дозволяють кодувати і декодувати тексти.

Модулі mailcap, mimetypes, netrc, robotparse витягують інформацію з відповідних файлів.

Модулі mailbox і mhlib дозволяють читати поштові скриньки у форматі UNIX mbox і MH.

Модулі sgmllib, htmllib і xmllib дозволяють створювати парсери для файлів відповідних форматів. Модуль sgmllib підтримує підмножина SGML, достатня лише для обробки HTML. Модуль htmllib розширює попередній модуль у бік написання текстових форматеров для HTML. А ось xmllib дійсно містить повноцінні парсеры XML. Парсеров цих буває 2 типи - що працюють зі всім деревом відразу (DOM, Document Object Model) і розбір, керований подіями (SAX). Бібліотека ця до того ж містить хуки, що дозволяють адміністраторові встановити поверх неї іншу версію, не стираючи старої; існує декілька альтернативних реалізацій, що використовують ці хуки: PyXML і 4Suite. Всі ці бібліотеки використовують низькорівневий парсер Expatякий не входить в дистрибутив Python; його треба встановлювати окремо.

Інші модулі

Крім перерахованих модулів стандартної бібліотеки, що входять в дистрибутив інтерпретатора, для Python існує маса додаткових модулів, які можна узяти в Інтернеті. Існує навіть каталог таких модулів, що називається Парнас. Є навіть комерційні фірми, що випускають модулі для Python, - і багато хто з цих модулів доступний вільно! На перше місце я поставлю фірму Zope Corporationщо вільно віддає сервер web-застосувань Zope. Окрім них відомі PythonWare / Secret Labs з своїми модулями PIL (Python Imaging Library), xmlrpclib, soaplib, нова версія Tkinter, Pythonware Sound Toolkit; ReportLab з своєю бібліотекою генерації PDF; Numerical Python - розширення Python для ефективної обробки матриць; Scientific Python - для наукових розрахунків (використовує NumPy); eGenix з своїми модулями mxDateTime (маніпуляції з датами і часом), mxtextTools (ефективна обробка текстів), mxODBC (комерційний модуль для доступу до реляційних БД, в т.ч. і з юнікса).

Існують модулі, що дозволяють вбудовувати інтерпретатор Python в Apache. Найпростіший з них PyApache. Mod_Python складніший, він інтенсивніше кешує байт-код, має об'єктно-орієнтований API, дозволяє писати хендлери для Апача. Mod_Snake дозволяє писати хендлери для Апача 2.0.

Велика кількість модулів для доступу до баз даних, і не тільки реляційним, наприклад PyBSDDB для доступу до BerkeleyDB3. Модулі для доступу до реляційних БД задовольняють специфікації Python DB API 2.0: PyGreSQL для доступу до PostgreSQL (модуль входить в дистрибутив POSTGRESQL); MySQLdb для доступу до MYSQL.

Крім Tk, програми з графічним інтерфейсом на Python можна писати з використанням багатьох інших бібліотек: WxPython для WxWidgets; PyGTK для GTK; а бібліотека Python XLib є повністю переписаною бібліотекою xlib! PLWM - це Window Mnager написаний на Python.

Романюк Андрій Богданович, Юрчак Ірина Юріївна

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]