Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 13
Текст из файла (страница 13)
Для разработки приложений с веб-интерфейсом или не предъявляющих высоких требований к интерфейсу можно использовать Jython,веб-фреймворки на языке Python и ����������������������������������������CGI�������������������������������������-сценарии, которые описываются в следующем разделе и обеспечивают дополнительные возможности по созданиюпользовательского интерфейса.Веб-сценарииИнтерпретатор Python поставляется вместе со стандартными интернет-модулями, которые позволяют программам выполнять разнообразные сетевые операции как в режиме клиента, так и в режиме сервера.
Сценарии могут производить взаимодействия через сокеты, извлекать информацию из форм, отправленных серверным CGI-сценариям; передавать файлы по протоколу FTP; обрабатывать файлы XML; передавать, принимать, создавать и производить разборписем электронной почты; загружать веб-страницы с указанных адресов URL;производить разбор разметки HTML и ������������������������������������XML���������������������������������полученных веб-страниц; производить взаимодействия по протоколам XML-RPC, SOAP и Telnet и многое другое.Библиотеки, входящие в состав Python, делают реализацию подобных задачудивительно простым делом.Кроме того, существует огромная коллекция сторонних инструментов для создания сетевых программ на языке Python, которые можно найти в Интернете.Например, система HTMLGen позволяет создавать HTML-страницы на основеописаний классов Python.
Пакет mod_ python предназначен для запуска сценариев на языке Python под управлением веб-сервера Apache и поддерживаетшаблоны механизма Python Server Pages. Система ��������������������������Jython��������������������обеспечивает бесшовную интеграцию Python/Java и поддерживает серверные апплеты, которыевыполняются на стороне клиента.Помимо этого для Python существуют полноценные пакеты веб-разработки, такие как Django, TurboGears, web2py, Pylons, Zope и WebWare, поддерживающиевозможность быстрого создания полнофункциональных высококачественныхвеб-сайтов на языке Python. Многие из них включают такие возможности, какобъектно-реляционные отображения, архитектура Модель/Представление/Контроллер (Model/View/Controller), создание сценариев, выполняющихся настороне сервера, поддержка шаблонов и технологии ����������������������AJAX������������������, предоставляя законченные и надежные решения для разработки веб-приложений.50Глава 1.
Python в вопросах и ответахИнтеграция компонентовВозможность интеграции программных компонентов в единое приложениес помощью Python уже обсуждалась выше, когда мы говорили о Python како языке управления. Возможность Python расширяться и встраиваться в системы на языке �����������������������������������������������������������C����������������������������������������������������������и C++ делает его удобным и гибким языком для описания поведения других систем и компонентов. Например, интеграция с библиотекойна языке C позволяет Python проверять наличие и запускать библиотечныекомпоненты, а встраивание Python в программные продукты позволяет производить настройку программных продуктов без необходимости пересобиратьэти продукты или поставлять их с исходными текстами.Такие инструменты, как Swing и SIP, автоматически генерирующие программный код, могут автоматизировать действия по связыванию скомпилированных компонентов в Python для последующего их использования в сценариях, а система Cython позволяет программистам смешивать программныйкод на Python и C.
Такие огромные платформы на Python, как поддержка COMв MS Windows, Jython – реализация на языке Java, IronPython – реализацияна базе .NET и разнообразные реализации CORBA, предоставляют альтернативные способы организации взаимодействий с программными компонентами. Например, в операционной системе Windows сценарии на языке Pythonмогут использовать платформы управления такими приложениями, как MSWord и Excel.Приложения баз данныхВ языке Python имеются интерфейсы доступа ко всем основным реляционнымбазам данных – Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLiteи многим другим. В мире Python существует также переносимый прикладнойпрограммный интерфейс баз данных, предназначенный для доступа к базамданных SQL из сценариев на языке Python, который унифицирует доступк различным базам данных.
Например, при использовании переносимого APIсценарий, предназначенный для работы со свободной базой данных MySQL,практически без изменений сможет работать с другими системами баз данных(такими как Oracle). Все, что потребуется сделать для этого, – заменить используемый низкоуровневый интерфейс.Стандартный модуль pickle реализует простую систему хранения объектов,что позволяет программам сохранять и восстанавливать объекты Pythonв файлах или в специализированных объектах. В Сети можно также найтисистему, созданную сторонними разработчиками, которая называется ZODB.Она представляет собой полностью объектно-ориентированную базу данныхдля использования в сценариях на языке Python.
Существуют также инструменты, такие как SQLObject и SQLAlchemy, которые отображают реляционные таблицы в модель классов языка Python. Начиная с версии Python 2.5,стандартной частью Python стала база данных SQLite.Быстрое создание прототиповВ программах на языке Python компоненты, написанные на Python и на C, выглядят одинаково. Благодаря этому можно сначала создавать прототипы систем на языке Python, а затем переносить выбранные компоненты на компили-Что можно делать с помощью Python?51рующие языки, такие как C и C++.
В отличие от ряда других инструментов разработки прототипов, язык Python не требует, чтобы система была полностьюпереписана, как только прототип будет отлажен. Части системы, которые нетребуют такой эффективности выполнения, какую обеспечивает C++, можнооставить на языке Python, что существенно упростит сопровождение и использование такой системы.Программирование математическихи научных вычисленийРасширение NumPy для математических вычислений, упоминавшееся выше,включает такие мощные элементы, как объекты массивов, интерфейсы к стандартным математическим библиотекам, и многое другое.
Расширение NumPy –за счет интеграции с математическими библиотеками, написанными на компилирующих языках программирования – превращает Python в сложный,но удобный инструмент программирования математических вычислений, который зачастую может заменить существующий программный код, написанный на традиционных компилирующих языках, таких как FORTRAN и C++.Дополнительные инструменты математических вычислений для Python поддерживают возможность создания анимационных эффектов и трехмерныхобъектов, позволяют организовать параллельные вычисления и так далее.Например, популярные расширения SciPy и ScientificPython предоставляютдополнительные библиотеки для научных вычислений и используют возможности расширения NumPy.Игры, изображения, искусственный интеллект,XML роботы и многое другоеЯзык программирования Python можно использовать для решения более широкого круга задач, чем может быть упомянуто здесь.
Например:•• Создавать игровые программы и анимационные ролики с помощью системы pygame•• Обмениваться данными с другими компьютерами через последовательныйпорт с помощью расширения PySerial•• Обрабатывать изображения с помощью расширений PIL, PyOpenGL,Blender, Maya и других•• Управлять роботом с помощью инструмента PyRo•• Производить разбор XML-документов с помощью пакета xml, модуля xmlrpclib и расширений сторонних разработчиков•• Программировать искусственный интеллект с помощью эмулятора нейросетей и оболочек экспертных систем•• Анализировать фразы на естественном языке с помощью пакета NLTK.Можно даже разложить пасьянс с помощью программы PySol.
Поддержкумногих других прикладных областей можно найти на веб-сайте PyPI или с помощью поисковых систем (ищите ссылки с помощью Google или на сайте http://www.python.org).52Глава 1. Python в вопросах и ответахВообще говоря, многие из этих областей применения Python – всего лишь разновидности одной и той же роли под названием «интеграция компонентов».Использование Python в качестве интерфейса к библиотекам компонентов, написанных на языке C, делает возможным создание сценариев на языке Pythonдля решения задач в самых разных прикладных областях. Как универсальный, многоцелевой язык программирования, поддерживающий возможностьинтеграции, Python может применяться очень широко.Как осуществляется поддержка Python?Будучи популярным и открытым проектом, Python имеет многочисленноеи активное сообщество разработчиков, которые решают проблемы и вносятулучшения со скоростью, которую многие коммерческие разработчики сочлибы поразительной (если не шокирующей).
Деятельность разработчиков Pythonкоординируется с помощью системы управления исходными текстами. Изменения в языке принимаются только после прохождения формальной процедуры (известной как «программа совершенствования продукта», или PEP)и должны сопровождаться обширными наборами тестов для системы регрессивного тестирования ���������������������������������������������������Python���������������������������������������������.
Фактически в настоящее время работа над ���Python������������������������������������������������������������������мало чем отличается от работы над коммерческими программными продуктами и очень сильно отличается от того, как велась разработка на первыхпорах, когда достаточно было отправить создателю языка письмо по электронной почте. Но�������������������������������������������������������������самое�������������������������������������������������������������������������������������������������������������������главное�����������������������������������������������������������������������������������������������������преимущество��������������������������������������������������������������������������������проекта����������������������������������������������������������� – огромное��������������������������������������количество������������������до���бровольных помощников.Существует официальная некоммерческая организация PSF (Python SoftwareFoundation��������������������������������������������������������������), которая занимается организацией конференций и решением проблем, связанных с интеллектуальной собственностью.