Монументальный труд Марка Лутца представляет собой учебник по применению языка Python в системном администрировании, для создания графических интерфейсов и веб- приложений. Исследуются приемы работы с базами данных, программирования сетевых взаимодействий, создания интерфейсов для сценариев, обработки текста и многие другие. Несмотря на то, что на протяжении всей книги используется язык Python, тем не менее основное внимание уделяется не основам языка, а приемам решения практических задач. Второй том включает материалы по созданию сценариев для Интернета. Описывается порядок использования сетевых протоколов и инструментов электронной почты на стороне клиента, применение CGI-сценариев, рассматриваются приемы реализации веб- сайтов. Далее обсуждаются дополнительные темы, касающиеся разработки приложений на Python, а именно: технологии хранения информации между запусками программы - файлы DBM, сериализация объектов, хранилища объектов и интерфейсы Python к базам данных SQL; приемы реализации более сложных структур данных на Python - стеков, множеств, двоичных деревьев поиска, графов и др.; инструменты и приемы, используемые в языке Python для синтаксического анализа текстовой информации; приемы интеграции - расширение Python с помощью компилируемых библиотек и встраивание программного кода на Python в другие приложения.
Название: Программирование на Python, том II, 4-е издание Автор: Лутц М. Издательство: Символ-Плюс Год: 2011 Страниц: 992 Формат: PDF Размер: 13,7 МБ ISBN: 978-5-93286-211-7 Качество: Отличное
Содержание:
Часть IV. Создание сценариев для Интернета Глава 12. Сетевые сценарии «Подключись, зарегистрируйся и исчезни» Темы, касающиеся разработки сценариев для Интернета Опробование примеров этой части книги Другие возможности разработки сценариев для Интернета на языке Python Трубопровод для Интернета Слой сокетов Слой протоколов Библиотечные модули Python для Интернета Программирование сокетов Основы сокетов Запуск программ, использующих сокеты, на локальном компьютере Запуск программ, использующих сокеты, на удаленном компьютере Параллельный запуск нескольких клиентов Подключение к зарезервированным портам Обслуживание нескольких клиентов Ветвление серверов Многопоточные серверы Классы серверов в стандартной библиотеке Мультиплексирование серверов с помощью select Подводя итоги: выбор конструкции сервера Придание сокетам внешнего вида файлов и потоков ввода-вывода Вспомогательный модуль перенаправления потоков ввода-вывода Простой файловый сервер на Python Запуск сервера файлов и клиентов Добавляем графический интерфейс пользователя Глава 13. Сценарии на стороне клиента «Свяжись со мной!» FTP: передача файлов по сети Передача файлов с помощью ftplib Использование пакета urllib для загрузки файлов Утилиты FTP get и put Добавляем пользовательский интерфейс Передача каталогов с помощью ftplib Загрузка каталогов сайта Выгрузка каталогов сайтов Реорганизация сценариев выгрузки и загрузки для многократного использования Передача деревьев каталогов с помощью ftplib Выгрузка локального дерева каталогов Удаление деревьев каталогов на сервере Загрузка деревьев каталогов с сервера Обработка электронной почты Поддержка Юникода в Python 3. X и инструменты электронной почты POP: чтение электронной почты Модуль настройки электронной почты Сценарий чтения почты с сервера POP Извлечение сообщений Чтение почты из интерактивной оболочки SMTP: отправка электронной почты Сценарий отправки электронной почты по SMTP Отправка сообщений Отправка почты из интерактивной оболочки Пакет email: анализ и составление электронных писем Объекты Message Базовые интерфейсы пакета email в действии Юникод, интернационализация и пакет email в Python 3.1 Почтовый клиент командной строки Работа с клиентом командной строки pymail Вспомогательный пакет mailtools Файл инициализации Класс MailTool Класс MailSender Класс MailFetcher Класс MailParser Сценарий самотестирования Обновление клиента командной строки pymail NNTP: доступ к телеконференциям HTTP: доступ к веб-сайтам Еще раз о пакете urllib Другие интерфейсы urllib Прочие возможности создания клиентских сценариев Глава 14. Почтовый клиент PyMailGUI «Пользуйся исходными текстами, Люк!» Модули с исходными текстами и их объем Зачем нужен PyMailGUI?.. Запуск PyMailGUI Стратегия представления Основные изменения в PyMailGUI Новое в версиях 2.1 и 2.0 (третье издание) Новое в версии 3.0 (четвертое издание) Демонстрация PyMailGUI Запуск Загрузка почты Многопоточная модель выполнения Интерфейс загрузки с сервера Обработка без подключения к Интернету, сохранение и открытие Отправка почты и вложений Просмотр электронных писем и вложений Ответ на сообщения, пересылка и особенности адресации Удаление сообщений Номера POP-сообщений и синхронизация Обработка содержимого электронной почты в формате HTML Поддержка интернационализации содержимого Альтернативные конфигурации и учетные записи Многооконный интерфейс и сообщения о состоянии Реализация PyMailGUI PyMailGUI: главный модуль SharedNames: глобальные переменные программы ListWindows: окна со списками сообщений ViewWindows: окна просмотра сообщений messagecache: менеджер кэша сообщений popuputil: диалоги общего назначения wraplines: инструменты разбиения строк html2text: извлечение текста из разметки HTML (прототип, предварительное знакомство) mailconfig: настройки пользователя textConfig: настройка окон редактора PyEdit PyMailGUIHelp: текст справки и ее отображение altconfigs: настройка нескольких учетных записей Идеи по усовершенствованию Глава 15. Сценарии на стороне сервера «До чего же запутанную паутину мы плетем…» Что такое серверный CGI-сценарий? Притаившийся сценарий Создание CGI-сценариев на языке Python Запуск примеров серверных сценариев Выбор веб-сервера Использование локального веб-сервера Корневая страница с примерами на стороне сервера Просмотр примеров серверных сценариев и их вывода Вверх к познанию CGI Первая веб-страница Первый CGI-сценарий Добавление картинок и создание таблиц Добавление взаимодействия с пользователем Табличная верстка форм Добавление стандартных инструментов ввода Изменение размещения элементов формы ввода Передача параметров в жестко определенных адресах URL Передача параметров в скрытых полях форм Сохранение информации о состоянии в сценариях CGI Параметры запроса в строке URL Скрытые поля форм HTTP «Cookies» Базы данных на стороне сервера Расширения модели CGI Комбинирование приемов Переключатель «Hello World» Проверка отсутствующих или недопустимых данных Рефакторинг программного кода с целью облегчения его сопровождения Шаг 1: совместное использование объектов разными страницами - новая форма ввода Шаг 2: многократно используемая утилита имитации формы Шаг 3: объединим все вместе - новый сценарий ответа Подробнее об экранировании HTML и URL Соглашения по экранированию адресов URL Инструменты Python для экранирования HTML и URL Экранирование разметки HTML Экранирование адресов URL Экранирование адресов URL, встроенных в разметку HTML Передача файлов между клиентами и серверами Отображение произвольных файлов сервера на стороне клиента Выгрузка файлов клиента на сервер Как же все-таки протолкнуть биты через Сеть Глава 16. Сервер PyMailCGI «Список дел на поездку в Чикаго» Веб-сайт PyMailCGI Обзор реализации Новое в версии для четвертого издания (версия 3.0) Новое в версии для предыдущего издания (версия 2.0) Обзорное представление программы Опробование примеров из этой главы Корневая страница Настройка PyMailCGI Отправка почты по SMTP Страница составления сообщений Сценарий отправки почты Страницы с сообщениями об ошибках Единство внешнего вида Использование сценария отправки почты без броузера Чтение электронной почты по протоколу POP Страница ввода пароля POP Страница выбора почты из списка Передача информации о состоянии в параметрах URL-ссылки Протоколы защиты данных Страница просмотра сообщений Передача информации о состоянии в скрытых полях форм HTML Экранирование текста сообщения и паролей в HTML Обработка загруженной почты Ответ и пересылка Удаление Операция удаления и номера POP-сообщений Вспомогательные модули Внешние компоненты и настройки Интерфейс к протоколу POP Шифрование паролей Общий вспомогательный модуль Преимущества и недостатки сценариев CGI PyMailGUI и PyMailCGI Веб-приложения и настольные приложения Другие подходы Часть V. Инструменты и приемы Глава 17. Базы данных и постоянное хранение «Дайте мне приказ стоять до конца, но сохранить данные» Возможности постоянного хранения данных в Python Файлы DBM Работа с файлами DBM Особенности DBM: файлы, переносимость и необходимость закрытия Сериализованные объекты Применение сериализации объектов Сериализация в действии Особенности сериализации: протоколы, двоичные режимы и модуль _pickle Файлы shelve Использование хранилищ Сохранение объектов встроенных типов в хранилищах Сохранение экземпляров классов в хранилищах Изменение классов хранимых объектов Ограничения модуля shelve Ограничения класса Pickler Другие ограничения хранилищ модуля shelve Объектно-ориентированная база данных ZODB Сильно сокращенный учебник по ZODB Интерфейсы баз данных SQL Обзор интерфейса SQL Учебник по API базы данных SQL на примере SQLite Создание словарей записей Объединяем все вместе Загрузка таблиц базы данных из файлов Вспомогательные сценарии SQL Ресурсы SQL ORM: механизмы объектно-реляционного отображения PyForm: просмотр хранимых объектов (внешний пример) Глава 18. Структуры данных «Розы - красные, фиалки - голубые; списки изменяемы, а также и класс Foo» Реализация стеков Встроенные возможности Модуль stack Класс Stack Индивидуальная настройка: мониторинг производительности Оптимизация: стеки в виде деревьев кортежей Оптимизация: непосредственная модификация списка в памяти Хронометраж усовершенствований Реализация множеств Встроенные возможности Функции множеств Классы множеств Оптимизация: перевод множеств на использование словарей Алгебра отношений для множеств (внешний пример) Создание подклассов встроенных типов Двоичные деревья поиска Встроенные возможности Реализация двоичных деревьев Деревья с ключами и значениями Поиск на графах Реализация поиска на графе Перевод графов на классы Перестановки последовательностей Обращение и сортировка последовательностей Реализация обращения Реализация сортировки Структуры данных в сравнении со встроенными типами: заключение PyTree: универсальное средство просмотра деревьев объектов Глава 19. Текст и язык «Пилите, Шура, пилите!» Стратегии обработки текста в Python Строковые методы Обработка шаблонов с помощью операций замены и форматирования Анализ текста с помощью методов split и join Суммирование по колонкам в файле Синтаксический анализ строк правил и обратное преобразование Поиск по шаблонам регулярных выражений Модуль re Первые примеры Строковые операции и шаблоны Использование модуля re Дополнительные примеры шаблонов Поиск совпадений с шаблонами в файлах заголовков C Синтаксический анализ XML и HTML Анализ XML Анализ HTML Дополнительные инструменты синтаксического анализа Парсеры, написанные вручную Грамматика выражений Реализация парсера Добавление интерпретатора дерева синтаксического анализа Структура дерева синтаксического анализа Исследование деревьев синтаксического анализа с помощью PyTree Парсеры и возможности Python PyCalc: программа/объект калькулятора Графический интерфейс простого калькулятора PyCalc - графический интерфейс «настоящего» калькулятора Глава 20. Интеграция Python/C «Я заблудился в C» Расширение и встраивание Расширения на C: обзор Простой модуль расширения на C Генератор интегрирующего программного кода SWIG Простой пример SWIG Создание оберток для функций окружения C Добавление классов-оберток в простые библиотеки Обертывание функций окружения C с помощью SWIG Обертывание классов C++ с помощью SWIG Простое расширение с классом C++ Обертывание классов C++ с помощью SWIG Использование класса C++ в Python Другие инструменты создания расширений Встраивание Python в С: обзор Обзор API встраивания в C Что представляет собой встроенный код?.. Основные приемы встраивания Выполнение простых строк программного кода Выполнение строк программного кода с использованием результатов и пространств имен Вызов объектов Python Выполнение строк в словарях Предварительная компиляция строк в байт-код Регистрация объектов для обработки обратных вызовов Реализация регистрации Использование классов Python в программах C Другие темы интеграции Часть VI. Финал Глава 21. Заключение: Python и цикл разработки «Книга заканчивается, пора уже и о смысле жизни» «Как-то мы неправильно программируем компьютеры» «Фактор Гиллигана» Делать правильно Цикл разработки для статических языков Искусственные сложности Одним языком не угодишь всем И тут появляется Python А как насчет того узкого места?.. Python обеспечивает цикл разработки без промежуточных стадий Python является «выполняемым псевдокодом» Python - это правильное ООП Python способствует созданию гибридных приложений По поводу потопления «Титаника» Так что же такое Python: продолжение Заключительный анализ Алфавитный указатель