Монументальный труд Марка Лутца «Программирование на Python» в 2-х томах представляет собой учебник по применению языка Python для решения наиболее типичных задач в различных прикладных областях. В нем рассказывается о применении языка Python в системном администрировании, для создания графических интерфейсов и веб-приложений и исследуются приемы программирования сетевых взаимодействий, взаимодействий с базами данных, обработки текста, создания интерфейсов для сценариев и во многих других областях.В четвертое издание включено описание новых особенностей языка, библиотек и практических приемов программирования для Python 3.X. В частности, примеры, представленные в книге, выполняются под управлением интерпретатора версии Python 3.1 – наиболее свежей версии Python на момент написания этих строк. Непосредственно перед публикацией книги все основные примеры были опробованы под третьей альфа версией Python 3.2, но, вообще говоря, они должны сохранить свою работоспособность при использовании любой версии Python из линейки 3.X.
Author(s): Марк Лутц
Edition: 4-е издание
Publisher: Символ
Year: 2011
Language: Russian
Commentary: 1146149920
Pages: 992
Tags: Библиотека;Компьютерная литература;Python;
Оглавление......Page 6
Часть IV. Создание сценариев для Интернета......Page 16
«Подключись, зарегистрируйся и исчезни»......Page 18
Темы, касающиеся разработки сценариев для Интернета......Page 20
Опробование примеров этой части книги......Page 23
Другие возможности разработки сценариев для Интернета на языке Python......Page 26
Слой сокетов......Page 31
Слой протоколов......Page 33
Библиотечные модули Python для Интернета......Page 37
Программирование сокетов......Page 39
Основы сокетов......Page 41
Запуск программ, использующих сокеты, на локальном компьютере......Page 48
Запуск программ, использующих сокеты, на удаленном компьютере......Page 49
Параллельный запуск нескольких клиентов......Page 53
Подключение к зарезервированным портам......Page 57
Ветвление серверов......Page 59
Многопоточные серверы......Page 74
Классы серверов в стандартной библиотеке......Page 77
Мультиплексирование серверов с помощью select......Page 80
Подводя итоги: выбор конструкции сервера......Page 88
Придание сокетам внешнего вида файлов и потоков ввода-вывода......Page 89
Вспомогательный модуль перенаправления потоков ввода-вывода......Page 90
Простой файловый сервер на Python......Page 105
Запуск сервера файлов и клиентов......Page 108
Добавляем графический интерфейс пользователя......Page 109
«Свяжись со мной!»......Page 120
FTP: передача файлов по сети......Page 121
Передача файлов с помощью ftplib......Page 122
Использование пакета urllib для загрузки файлов......Page 126
Утилиты FTP get и put......Page 128
Добавляем пользовательский интерфейс......Page 137
Передача каталогов с помощью ftplib......Page 145
Загрузка каталогов сайта......Page 146
Выгрузка каталогов сайтов......Page 154
Реорганизация сценариев выгрузки и загрузки для многократного использования......Page 159
Выгрузка локального дерева каталогов......Page 169
Удаление деревьев каталогов на сервере......Page 173
Обработка электронной почты......Page 177
Поддержка Юникода в Python 3.X и инструменты электронной почты......Page 178
POP: чтение электронной почты......Page 180
Модуль настройки электронной почты......Page 181
Сценарий чтения почты с сервера POP......Page 184
Извлечение сообщений......Page 187
Чтение почты из интерактивной оболочки......Page 190
SMTP: отправка электронной почты......Page 191
Сценарий отправки электронной почты по SMTP......Page 193
Отправка сообщений......Page 195
Отправка почты из интерактивной оболочки......Page 203
Пакет email: анализ и составление электронных писем......Page 204
Объекты Message......Page 206
Базовые интерфейсы пакета email в действии......Page 209
Юникод, интернационализация и пакет email в Python 3.1......Page 212
Почтовый клиент командной строки......Page 239
Работа с клиентом командной строки pymail......Page 245
Вспомогательный пакет mailtools......Page 250
Файл инициализации......Page 251
Класс MailSender......Page 253
Класс MailFetcher......Page 263
Класс MailParser......Page 275
Сценарий самотестирования......Page 284
Обновление клиента командной строки pymail......Page 287
NNTP: доступ к телеконференциям......Page 294
HTTP: доступ к веб-сайтам......Page 297
Еще раз о пакете urllib......Page 301
Другие интерфейсы urllib......Page 303
Прочие возможности создания клиентских сценариев......Page 307
«Пользуйся исходными текстами, Люк!»......Page 310
Модули с исходными текстами и их объем......Page 311
Зачем нужен PyMailGUI?......Page 315
Запуск PyMailGUI......Page 317
Стратегия представления......Page 318
Новое в версиях 2.1 и 2.0 (третье издание)......Page 319
Новое в версии 3.0 (четвертое издание)......Page 321
Демонстрация PyMailGUI......Page 331
Запуск......Page 332
Загрузка почты......Page 339
Многопоточная модель выполнения......Page 340
Интерфейс загрузки с сервера......Page 344
Обработка без подключения к Интернету, сохранение и открытие......Page 345
Отправка почты и вложений......Page 348
Просмотр электронных писем и вложений......Page 352
Ответ на сообщения, пересылка и особенности адресации......Page 360
Удаление сообщений......Page 366
Номера POP-сообщений и синхронизация......Page 368
Обработка содержимого электронной почты в формате HTML......Page 370
Поддержка интернационализации содержимого......Page 372
Альтернативные конфигурации и учетные записи......Page 377
Многооконный интерфейс и сообщения о состоянии......Page 378
Реализация PyMailGUI......Page 381
PyMailGUI: главный модуль......Page 383
SharedNames: глобальные переменные программы......Page 386
ListWindows: окна со списками сообщений......Page 388
ViewWindows: окна просмотра сообщений......Page 410
messagecache: менеджер кэша сообщений......Page 422
popuputil: диалоги общего назначения......Page 426
wraplines: инструменты разбиения строк......Page 428
html2text: извлечение текста из разметки HTML (прототип, предварительное знакомство)......Page 431
mailconfig: настройки пользователя......Page 434
PyMailGUIHelp: текст справки и ее отображение......Page 441
altconfigs: настройка нескольких учетных записей......Page 445
Идеи по усовершенствованию......Page 448
«До чего же запутанную паутину мы плетем…»......Page 461
Притаившийся сценарий......Page 463
Создание CGI-сценариев на языке Python......Page 465
Запуск примеров серверных сценариев......Page 467
Использование локального веб-сервера......Page 468
Корневая страница с примерами на стороне сервера......Page 471
Просмотр примеров серверных сценариев и их вывода......Page 472
Первая веб-страница......Page 473
Первый CGI-сценарий......Page 480
Добавление картинок и создание таблиц......Page 487
Добавление взаимодействия с пользователем......Page 490
Табличная верстка форм......Page 500
Добавление стандартных инструментов ввода......Page 507
Изменение размещения элементов формы ввода......Page 511
Передача параметров в жестко определенных адресах URL......Page 514
Передача параметров в скрытых полях форм......Page 517
Сохранение информации о состоянии в сценариях CGI......Page 519
Параметры запроса в строке URL......Page 521
Скрытые поля форм......Page 522
HTTP «Cookies»......Page 523
Базы данных на стороне сервера......Page 528
Расширения модели CGI......Page 529
Комбинирование приемов......Page 530
Переключатель «Hello World»......Page 531
Проверка отсутствующих или недопустимых данных......Page 539
Рефакторинг программного кода с целью облегчения его сопровождения......Page 541
Шаг 1: совместное использование объектов разными страницами – новая форма ввода......Page 543
Шаг 2: многократно используемая утилита имитации формы......Page 546
Шаг 3: объединим все вместе – новый сценарий ответа......Page 550
Подробнее об экранировании HTML и URL......Page 552
Соглашения по экранированию адресов URL......Page 553
Инструменты Python для экранирования HTML и URL......Page 554
Экранирование разметки HTML......Page 555
Экранирование адресов URL......Page 556
Экранирование адресов URL, встроенных в разметку HTML......Page 557
Передача файлов между клиентами и серверами......Page 562
Отображение произвольных файлов сервера на стороне клиента......Page 564
Выгрузка файлов клиента на сервер......Page 572
Как же все-таки протолкнуть биты через Сеть......Page 584
«Список дел на поездку в Чикаго»......Page 586
Обзор реализации......Page 587
Новое в версии для четвертого издания (версия 3.0)......Page 591
Новое в версии для предыдущего издания (версия 2.0)......Page 594
Опробование примеров из этой главы......Page 596
Корневая страница......Page 599
Настройка PyMailCGI......Page 602
Страница составления сообщений......Page 603
Сценарий отправки почты......Page 604
Страницы с сообщениями об ошибках......Page 608
Единство внешнего вида......Page 609
Использование сценария отправки почты без броузера......Page 610
Страница ввода пароля POP......Page 612
Страница выбора почты из списка......Page 614
Передача информации о состоянии в параметрах URL-ссылки......Page 618
Протоколы защиты данных......Page 621
Страница просмотра сообщений......Page 623
Передача информации о состоянии в скрытых полях форм HTML......Page 627
Экранирование текста сообщения и паролей в HTML......Page 629
Обработка загруженной почты......Page 631
Ответ и пересылка......Page 633
Удаление......Page 634
Операция удаления и номера POP-сообщений......Page 638
Вспомогательные модули......Page 643
Внешние компоненты и настройки......Page 644
Интерфейс к протоколу POP......Page 645
Шифрование паролей......Page 646
Общий вспомогательный модуль......Page 656
Преимущества и недостатки сценариев CGI......Page 662
PyMailGUI и PyMailCGI......Page 663
Веб-приложения и настольные приложения......Page 664
Другие подходы......Page 668
Часть V. Инструменты и приемы......Page 674
«Дайте мне приказ стоять до конца, но сохранить данные»......Page 676
Возможности постоянного хранения данных в Python......Page 677
Файлы DBM......Page 678
Работа с файлами DBM......Page 679
Особенности DBM: файлы, переносимость и необходимость закрытия......Page 682
Сериализованные объекты......Page 683
Применение сериализации объектов......Page 684
Сериализация в действии......Page 686
Особенности сериализации: протоколы, двоичные режимы и модуль _pickle......Page 689
Файлы shelve......Page 691
Использование хранилищ......Page 692
Сохранение объектов встроенных типов в хранилищах......Page 694
Сохранение экземпляров классов в хранилищах......Page 695
Изменение классов хранимых объектов......Page 697
Ограничения модуля shelve......Page 699
Ограничения класса Pickler......Page 701
Объектно-ориентированная база данных ZODB......Page 703
Сильно сокращенный учебник по ZODB......Page 705
Интерфейсы баз данных SQL......Page 708
Обзор интерфейса SQL......Page 710
Учебник по API базы данных SQL на примере SQLite......Page 713
Создание словарей записей......Page 720
Объединяем все вместе......Page 725
Загрузка таблиц базы данных из файлов......Page 726
Вспомогательные сценарии SQL......Page 730
Ресурсы SQL......Page 738
ORM: механизмы объектно-реляционного отображения......Page 739
PyForm: просмотр хранимых объектов (внешний пример)......Page 741
«Розы – красные, фиалки – голубые; списки изменяемы, а также и класс Foo»......Page 744
Реализация стеков......Page 745
Встроенные возможности......Page 746
Модуль stack......Page 748
Класс Stack......Page 750
Индивидуальная настройка: мониторинг производительности......Page 753
Оптимизация: стеки в виде деревьев кортежей......Page 754
Оптимизация: непосредственная модификация списка в памяти......Page 756
Хронометраж усовершенствований......Page 758
Реализация множеств......Page 761
Встроенные возможности......Page 762
Функции множеств......Page 764
Классы множеств......Page 766
Оптимизация: перевод множеств на использование словарей......Page 767
Алгебра отношений для множеств (внешний пример)......Page 771
Создание подклассов встроенных типов......Page 772
Встроенные возможности......Page 775
Реализация двоичных деревьев......Page 776
Деревья с ключами и значениями......Page 779
Поиск на графах......Page 780
Реализация поиска на графе......Page 781
Перевод графов на классы......Page 783
Перестановки последовательностей......Page 786
Обращение и сортировка последовательностей......Page 788
Реализация обращения......Page 789
Реализация сортировки......Page 790
Структуры данных в сравнении со встроенными типами: заключение......Page 792
PyTree: универсальное средство просмотра деревьев объектов......Page 794
«Пилите, Шура, пилите!»......Page 797
Стратегии обработки текста в Python......Page 798
Строковые методы......Page 799
Обработка шаблонов с помощью операций замены и форматирования......Page 801
Анализ текста с помощью методов split и join......Page 802
Суммирование по колонкам в файле......Page 803
Синтаксический анализ строк правил и обратное преобразование......Page 806
Поиск по шаблонам регулярных выражений......Page 810
Первые примеры......Page 811
Строковые операции и шаблоны......Page 814
Использование модуля re......Page 817
Дополнительные примеры шаблонов......Page 823
Поиск совпадений с шаблонами в файлах заголовков C......Page 825
Синтаксический анализ XML и HTML......Page 827
Анализ XML......Page 828
Анализ HTML......Page 835
Дополнительные инструменты синтаксического анализа......Page 838
Парсеры, написанные вручную......Page 841
Грамматика выражений......Page 842
Реализация парсера......Page 843
Добавление интерпретатора дерева синтаксического анализа......Page 851
Структура дерева синтаксического анализа......Page 857
Исследование деревьев синтаксического анализа с помощью PyTree......Page 859
Парсеры и возможности Python......Page 860
Графический интерфейс простого калькулятора......Page 861
PyCalc – графический интерфейс «настоящего» калькулятора......Page 867
«Я заблудился в C»......Page 890
Расширение и встраивание......Page 891
Расширения на C: обзор......Page 894
Простой модуль расширения на C......Page 895
Генератор интегрирующего программного кода SWIG......Page 900
Простой пример SWIG......Page 901
Создание оберток для функций окружения C......Page 906
Добавление классов-оберток в простые библиотеки......Page 910
Обертывание функций окружения C с помощью SWIG......Page 911
Обертывание классов C++ с помощью SWIG......Page 913
Простое расширение с классом C++......Page 914
Обертывание классов C++ с помощью SWIG......Page 917
Использование класса C++ в Python......Page 919
Другие инструменты создания расширений......Page 924
Обзор API встраивания в C......Page 929
Что представляет собой встроенный код?......Page 931
Основные приемы встраивания......Page 933
Выполнение простых строк программного кода......Page 934
Выполнение строк программного кода с использованием результатов и пространств имен......Page 938
Вызов объектов Python......Page 940
Выполнение строк в словарях......Page 942
Предварительная компиляция строк в байт-код......Page 944
Регистрация объектов
для обработки обратных вызовов......Page 946
Реализация регистрации......Page 948
Использование классов Python в программах C......Page 953
Другие темы интеграции......Page 956
Часть VI. Финал......Page 960
Глава 21. Заключение: Python и цикл разработки......Page 962
«Книга заканчивается, пора уже и о смысле жизни»......Page 963
«Фактор Гиллигана»......Page 964
Делать правильно......Page 965
Одним языком не угодишь всем......Page 966
И тут появляется Python......Page 967
Python обеспечивает цикл разработки без промежуточных стадий......Page 969
Python – это правильное ООП......Page 971
Python способствует созданию гибридных приложений......Page 972
По поводу потопления «Титаника»......Page 974
Так что же такое Python: продолжение......Page 976
Заключительный анализ.........Page 977
Алфавитный указатель......Page 979
Заключительный анализ.........Page 0