Базы данных и постоянное хранение
- PyForm: просмотр хранимых объектов (внешний пример)
- ORM: механизмы объектно-реляционного отображения
- Ресурсы SQL
- Использование сценариев Python
- Сценарий вывода таблицы Python
- Вспомогательные сценарии SQL
- Загрузка с помощью SQL и Python
- Загрузка таблиц базы данных из файлов
- Автоматизация операций с помощью сценариев и модулей
- Создание баз данных и таблиц
- Учебник по API базы данных SQL на примере SQLite
- Результаты запроса команды SQL select
- Обзор интерфейса SQL
- Интерфейсы баз данных SQL
- Объектно-ориентированная база данных ZODB
- Другие ограничения хранилищ модуля shelve
- Другие ограничения модуля pickle
- Изменения в классе должны обеспечивать обратную совместимость Python
- Классы должны быть доступны для импортирования Python
- Ограничения класса Pickler
- Переносимость базового формата DBM
- Возможность одновременных обновлений не поддерживается Python
- Объекты уникальны только по ключу Python
- Ограничения модуля shelve
- Выбор класса Python
- Изменение классов хранимых объектов Python
- Сохранение экземпляров классов в хранилищах Python
- Сохранение объектов встроенных типов в хранилищах Python
- Использование хранилищ Python
- Файлы shelve
- Особенности сериализации:протоколы, двоичные режимы и модуль _pickle
- Сериализация в действии Python
- Применение сериализации объектов Python
- Сериализованные объекты DBM
- Особенности DBM: файлы, переносимость и необходимость закрытия
- Работа с файлами DBM
- Файлы DBM
- Возможности постоянного хранения данных в Python
- «Дайте мне приказ стоять до конца, но сохранить данные»
Заключение: Python и цикл разработки
- Что же такое Python: продолжение
- Самостоятельное использование Python
- Готовность продукта к поставке Python
- Python способствует созданию гибридных приложений
- Python — это правильное ООП
- Python является «выполняемым псевдокодом»
- Python обеспечивает цикл разработки без промежуточных стадий
- C/C++ Python
- Java Python
- BASIC Python
- Icon Python
- Smalltalk Python
- Scheme/Lisp Python
- Perl Python
- Искусственные сложности Python
- Цикл разработки для статических языков Python
- «Как-то мы неправильно программируем компьютеры» Python
- Python и цикл разработки
Интеграция Python/C
- Интеграция на основе сетевых протоколов Python
- Другие языки Python
- Интеграция CORBA Python
- Интеграция в Windows с помощью COM
- IronPython: интеграция с C#/.NET
- Jython: интеграция с Java
- Другие темы интеграции Python
- Использование классов Python в программах C
- Возбуждение событий Python
- Регистрация обработчика обратного вызова Python
- Маршрут и затор событий Python
- Реализация регистрации Python
- Регистрация объектов для обработки обратных вызовов Python
- Предварительная компиляция строк в байт-код Python
- Выполнение строк в словарях Python
- Вызов объектов Python
- Компиляция и выполнение Python
- Выполнение простых строк программного кода Python
- Основные приемы встраивания Python
- Файлы с программным кодом
- Вызываемые объекты Python
- Строки программного кода Python
- Что представляет собой встроенный код в Python?
- Обзор API встраивания в C
- Встраивание Python в С: обзор
- Соединение Python и C++
- Другие языки: Java, C#, FORTRAN, Objective-C и прочие
- CXX, weave и другие
- Cython (и Pyrex)
- Boost. Python
- Другие инструменты создания расширений Python
- Исследование оберток в интерактивном сеансе Python
- Использование низкоуровневого модуля расширения Python
- Использование класса C++ в Python
- Обертывание классов C++ с помощью SWIG
- Простое расширение с классом C++
- Обертывание классов C++ с помощью SWIG
- Обертывание функций окружения C с помощью SWIG
- Добавление классов-оберток в простые библиотеки Python
- Создание оберток для функций окружения C
- Простой пример SWIG
- Генератор интегрирующего программного кода SWIG
- Простой модуль расширения Python на C
- Библиотеки инструментов, воспринимаемые клиентами как файлы модулей Python
- Расширения на C: обзор Python
- Интерфейс встраивания Python
- Расширение и встраивание Python
- «Я заблудился в C»
Почтовый клиент PyMailGUI Python
- Оптимизация модели поддержки Юникода
- Оптимизация производительности
- Обработка сообщений телеконференций
- Проверка пустого заголовка «Subject»
- Автоматическая периодическая проверка электронной почты
- Распространение вложений
- Создание двоичного дистрибутива
- Поиск в электронных письмах
- Проверка орфографии
- Адресные книги
- Под держка альтернативных частей с содержимым в виде простого текста и HTML
- Улучшение механизма синтаксического анализа разметки HTML
- Просмотр и редактирование основного текста сообщения в формте HTML
- Списки рассылки
- Настройка скорости обработки очереди с функциями обратного вызова в потоках
- Упрощение доступа к файлу с отправленной почтой
- Усовершенствование поддержки нескольких учетных записей
- Фильтрация спама
- Удаление вложений из списка
- Устранение избыточности текста справки
- Встроенные ссылки
- Идеи по усовершенствованию
- SharedNames: глобальные переменные программы
- PyMailGUI: главный модуль
- Реализация PyMailGUI
- Многооконный интерфейс и сообщения о состоянии
- Альтернативные конфигурации и учетные записи
- Обработка содержимого электронной почты в формате HTML
- Номера POP-сообщений и синхронизация
- Просмотр электронных писем и вложений
- Обработка без подключения к Интернету, сохранение и открытие
- Интерфейс загрузки с сервера
- Реализация многопоточной модели выполнения
- Многопоточная модель выполнения
- Демонстрация PyMailGUI
- Поддержка Юникода (интернационализации)
- Ответ рассылается всем получателям оригинального сообщения
- Извлечение основного текста в формате HTML (прототип)
- Ограничение на количество загружаемых писем
- Отображение справки в формате HTML
- Обходное решение проблемы вывода трассировочной информации в Python 3.1
- Исправления в текстовом редакторе, учитывающие изменения в библиотеке Tk
- Улучшения в компоновке графического интерфейса
- Основные изменения в PyMailGUI
- Стратегия представления PyMailGUI
- Запуск PyMailGUI
- Зачем нужен PyMailGUI?
- Организация программного кода
- Объем программного кода
- Глобальные переменные и функции, используемые разными модулями
- Различные всплывающие окна общего назначения messagecache. py
- Модули с исходными текстами и их объем
- Повторное использование программного кода
- Разработка клиентских сценариев
- Почтовый клиент PyMailGUI
Программирование на Python
«Программирование на Python»: краткий очерк
Графические интерфейсы пользователя
- «Я здесь, я смотрю на тебя, детка»
- Платформозависимые инструменты
- Добавление кнопок и обработчиков
- Настройка виджетов с помощью классов
- Еще раз об изменении размеров виджетов: растягивание
- Взбираясь по кривой обучения программированию графических интерфейсов
- Различные возможности создания GUI в Python
- Еще одна версия в память о былых временах
- Связывание событий
- Проблемы с областями видимости обработчиков
- Аргументы и глобальные переменные
- Порядок компоновки и прикрепление к сторонам
- Структура tkinter
- Обзор tkinter
- Кто-нибудь заметил, что «GUI» совпадает с тремя. первыми буквами в имени «GUIDO»?
- Расширения для tkinter
- Lambda-выражения как обработчики событий
- Отложенные вызовы с применением инструкций lambda и ссылок на объекты
- Использование якорей вместо растягивания
- Стандартизация поведения и внешнего вида
- Соответствие между Python/tkinter и Tcl/Tk
- Добавление виджетов без их сохранения
- Полнофункциональные интернет-приложения (Rich Internet Applications, RIA)
- Прикрепление виджетов к фреймам
- Программная структура
- Основы использования tkinter
- Передача значений из объемлющей области видимости с помощью аргументов со значениями по умолчанию
- Завершение начального обучения
- Еще раз об изменении размеров: обрезание
- Другие протоколы обратного вызова в tkinter
- Документация tkinter
- Снова о параметрах expand и fill компоновки
- Добавление нескольких виджетов
- Но иногда вместо объемлющих областей видимости все же необходимо использовать аргументы со значениями по умолчанию
- Передача значений из объемлющей области видимости с помощью автоматических ссылок
- Менеджеры компоновки
- Связанные методы как обработчики событий
- Практические преимущества tkinter
- Альтернативные приемы использования tkinter
- Настройка параметров графического элемента и заголовка окна
- Темы программирования GUI
- Общие черты поведения
- Автономные классы-контейнеры
- Общий внешний вид
- Структура реализации
- Расширение классов компонентов
- Запуск примеров
- «Hello World» в четыре строки (или меньше)
- Прикрепление классов компонентов
- Основы изменения размеров виджетов
- Повторно используемые компоненты и классы
- Объекты вызываемых классов как обработчики событий
- Добавление пользовательских обработчиков
- Создание виджетов
- Как избежать появления окна консоли DOS в Windows
- Запуск программ с графическим интерфейсом
Законченные системные программы
- Сценарий Python для поиска в дереве
- «Ярость поиска»
- Копирование деревьев каталогов
- Поиск в деревьях каталогов
- Сканирование всего компьютера
- Файл шаблона страницы
- Модуль webbrowser
- Проверка резервных копий
- Сканирование каталога стандартной библиотеки
- Автоматизированный запуск программ (внешние примеры)
- Игра: «Найди самый большой файл Python»
- Использование модуля mimetypes в классе SearchVisitor
- Варианты использования
- Отчет о различиях и другие идеи
- Вывод имен файлов с символами Юникода
- Создание собственного модуля find
- Сканирование пути поиска модулей
- Модуль fnmatch
- Глобальная замена в деревьях каталогов (Visitor)
- Соединение файлов переносимым образом
- Запускаем тестирование
- Тест прошел неудачно?
- Сканирование дерева каталогов стандартной библиотеки
- Сравнение деревьев каталогов
- Grep, glob и find
- Проигрывание медиафайлов
- Запускаем сценарий
- Разрезание и объединение файлов
- Visitor: обход каталогов «++»
- Удаление файлов с байт-кодом
- Разрезание файлов переносимым способом
- Создание веб-страниц для переадресации
- Редактирование файлов в деревьях каталогов (Visitor)
- Запускаем сценарий
- Копирование деревьев каталогов с помощью классов (Visitor)
- Модуль mimetypes
- Сценарий генератора страниц
- Поиск различий между деревьями
- Другие примеры обходчиков (внешние)
- Подсчет строк исходного программного кода (Visitor)
- Поиск расхождений между каталогами
- Сценарий регрессивного тестирования
Инструменты для работы с файлами и каталогами
- Функция обхода дерева os. walk
- Инструменты для работы с каталогами
- Гарантированное закрытие файлов: обработчики исключений и менеджеры контекста
- Вывод в файлы
- «Как очистить свой жесткий диск за пять простых шагов»
- Другие режимы открытия файлов
- Использование файлов, возвращаемых os. open
- Модуль glob
- Функция os. listdir
- Работа с упакованными двоичными данными с помощью модуля struct
- Произвольный доступ к данным в файлах
- Обертывание дескрипторов объектами файлов
- Разбиение и объединение результатов вывода
- Инструменты для работы с файлами
- Обход деревьев каталогов
- Двоичные и текстовые файлы
- Обход одного каталога
- Флаги режима os. open
- Чтение строк с помощью итераторов файлов
- Правила использования Юникода: содержимое файлов и имена файлов
- Рекурсивный обход с помощью os. listdir
- Использование встроенных объектов файлов
- Преобразование символов конца строки в Windows
- Чтение из файлов
- Запуск команд получения списка содержимого каталога с помощью os. popen
- Модель объекта файла в Python 3.X
- Другие инструменты для работы с файлами в модуле os
- Кодирование символов Юникода в текстовых файлах
- Фильтры файлов
- Низкоуровневые инструменты в модуле os для работы с файлами
- Сканеры файлов
- В версии 3.X: listdir, walk, glob
Контекст выполнения сценариев
- Перенаправление ввода и вывода с помощью модуля subprocess
- Изменение переменных оболочки
- Альтернативные реализации сценариев adder и sorter
- Переменные окружения оболочки
- Python и csh
- Выполняемые сценарии в Unix
- Перехват потока stderr
- Возможность перенаправления с помощью функции print
- Получение значений переменных оболочки
- Текущий рабочий каталог и командные строки
- Текущий рабочий каталог
- Текущий рабочий каталог, файлы и путь поиска модулей
- Перенаправление потоков ввода-вывода в файлы и программы
- Анализ аргументов командной строки
- Перенаправление потоков в объекты Python
- Перенаправление ввода или вывода с помощью os. popen
- «Ваши аргументы, пожалуйста!»
- Стандартные потоки в Windows
- Перенаправление потоков и взаимодействие с пользователем
- Другие варианты перенаправления: еще раз об os. popen и subprocess
- Аргументы командной строки
- Соединение программ с помощью каналов
- Стандартные потоки ввода-вывода
- Вспомогательные классы io. StringIO и io. BytesIO
- Особенности переменных оболочки: родители, putenv и getenv
Приемы программирования графических интерфейсов
- Другие примеры использования многопоточных графических интерфейсов и каналов
- Запускающие программы PyDemos и PyGadgets
- Добавление графических интерфейсов к инструментам командной строки
- Внутри потоков выполнения… и другие «решения»
- Возможные улучшения
- Диалоги ввода
- Протоколы подклассов
- Обобщенный графический интерфейс инструментов оболочки
- Реализация с классами и связанными методами
- ShellGui: графические интерфейсы к инструментам командной строки
- Завершение потоков в графических интерфейсах
- Графические интерфейсы, потоки выполнения и очереди
- Классы наборов утилит
- Обертывание интерфейсов окон верхнего уровня
- Программный код самотестирования GuiMaker
- Призрак блокирования операций чтения
- GuiMixin: универсальные подмешиваемые классы
- Вывод окон графического интерфейса по требованию
- Динамическая перезагрузка обработчиков
- Классы GuiMaker
- Функции создания виджетов
- Вспомогательные подмешиваемые классы
- Передача связанных методов в очередь
- Реализация графического интерфейса в виде отдельной программы: каналы
- Использование перенаправления для сценариев архивирования
- Помещение данных в очередь
- Панель запуска PyDemos
- «Создание улучшенной мышеловки»
- Другие способы добавления GUI к сценариям командной строки
- Предотвращение блокирования операций чтения с помощью потоков выполнения
- GuiStreams: перенаправление потоков данных в виджеты
- Сценарии командной строки
- Реализация графического интерфейса в виде отдельной программы: сокеты (вторая встреча)
- Помещение обработчиков в очередь
- BigGui: клиентская демонстрационная программа
- Панель запуска PyGadgets
- Сокеты и каналы: сходства и различия
- GuiMaker: автоматизация создания меню и панелей инструментов
Примеры законченных программ с графическим интерфейсом
- Что дальше
- Несколько окон
- Исходный программный код PyDraw
- Исходный программный код PyEdit
- Запуск программного кода
- Проверка наличия изменений в других окнах того же процесса при завершении
- Исправление проблемы начального позиционирования
- Запуск PyView
- Исходный программный код PyPhoto
- Новый диалог Grep: поиск в дереве файлов с поддержкой Юникода и многопоточной модели выполнения
- Отмена, возврат и проверка наличия изменений
- PyPhoto: программа просмотра и изменения размеров изображений
- Диалоги
- Изменения в версии PyEdit 2.1 (четвертое издание)
- Изменения в версии PyEdit 2.0 (третье издание)
- Стратегия данной главы
- Открытое программное обеспечение и Camaro
- Файлы запуска для Windows (и других систем)
- Исправление проблемы состояния модальных диалогов
- PyToe: виджет игры в крестики-нолики
- Примеры в других главах
- Поддержка текста Юникода (интернационализированного)
- Встраивание PyEdit в PyView
- Запуск PyEdit
- Файл с настройками пользователя
- Еще о проверке наличия изменений при завершении: событие <Destroy>
- PyDraw: рисование и перемещение графики
- Улучшения в операции запуска программного кода
- Модуль с настройками
- Исходный программный код PyClock
- Исходный программный код PyToe (внешний)
- PyEdit: программа/объект текстового редактора
- Запуск PyPhoto
- Меню и панели инструментов
- Запуск PyClock
- Запуск PyToe
- Диалог выбора шрифта
- Инструменты Python для обработки чисел
- С изображением PyEdit в этой книге
- PyView: слайд-шоу для изображений и примечаний
- Реализация главного файла
- Исходный программный код PyView
- Краткий урок геометрии
- Запуск PyDraw
- PyClock: виджет аналоговых/цифровых часов
- «Python, открытое программное обеспечение и Camaro[XLIII]»
Системные инструменты
- Основы операций с файлами
- Обмен данными с командами оболочки
- Альтернатива на основе модуля subprocess
- Пути к каталогам в Windows
- Платформы и версии
- Юникод и тип bytes
- Основы использования строковых методов
- Модуль sys
- Коммерческие справочники
- Выполнение команд оболочки
- Другие элементы, экспортируемые модулем os
- Сведения об исключениях
- Источники документации по модулям
- Постраничный вывод строк документации
- Ограничения, присущие командам оболочки
- Таблица загруженных модулей
- Что такое команда оболочки?
- «os. path — дорога к знанию»
- Путь поиска модулей
- Модуль os
- Другие элементы, экспортируемые модулем sys
- Инструменты в модуле os
- Два способа использования программ
- Константы переносимости
- Сценарий постраничного вывода
- Средства администрирования
- Основные инструменты os. path
- Зачем здесь нужен Python?
- Subprocess, os. popen и итераторы
- Знакомство с разработкой системных сценариев
- Системные модули Python
- Выполнение команд оболочки из сценариев
- Руководства по библиотекам Python
Системные инструменты параллельного выполнения
- Еще раз о буферизации потока вывода: взаимоблокировки и выталкивание буферов
- Семейство функций os. spawn
- Прикладной интерфейс потоков на языке C
- Другие способы реализации потоков выполнения с помощью модуля threading
- Завершение программы с дочерними потоками выполнения
- Разделяемая память и глобальные объекты
- Запуск сценария
- Завершение программ
- Модуль threading
- Двунаправленный обмен данными с помощью анонимных каналов
- Интервал переключения потоков выполнения
- Переносимый модуль запуска программ
- Атомарные операции
- И совместно используемая информация
- Взаимодействия между процессами
- Использование команды DOS start
- Потоки выполнения
- Формы вызова функции os. exec
- Другие способы запуска программ
- Ветвление процессов
- Получение кода завершения с помощью os. system и os. popen
- И многое другое
- Каналы в пакете multiprocessing
- Синхронизация доступа к глобальным объектам и переменным
- Области применения именованных каналов
- Пакет multiprocessing
- Запуск независимых программ
- Сокеты: первый взгляд
- Реализация и правила использования
- Ожидание завершения порожденных потоков выполнения
- Порожденная дочерняя программа
- Зачем нужен пакет multiprocessing? Заключение
- К совместно используемым объектам и переменным
- «Расскажите обезьянам, что им делать»
- Основы анонимных каналов
- Подробнее о Cygwin Python для Windows
- И совместно используемая информация
- Завершение программ средствами модуля sys
- Получение кода завершения с помощью модуля subprocess
- Аргумент или глобальная переменная?
- Основы именованных каналов
- Буферизация потока вывода: первый взгляд
- Области применения сокетов
- Таймеры-потоки против таймеров. графического интерфейса
- Именованные каналы (fifo)
- Основы сокетов
- Разделяемая память и очереди
- Использование команды start в сценариях Python
- Модуль queue
- Обертывание дескрипторов канала объектами файлов
- Другие системные инструменты
- Графические интерфейсы и потоки выполнения: предварительное знакомство
- Коды завершения команд оболочки
- Альтернативные приемы: циклы занятости, аргументы и менеджеры контекста
- Сокеты и независимые программы
- Анонимные каналы и потоки выполнения
- Очереди и подклассы
- Комбинация fork/exec
- Подробнее о буферизации потоков ввода-вывода:. pty и Pexpect
- Функция os. startfile в Windows
- Функция os. startfile
- Сигналы
- Завершение программ средствами модуля os
- Основы: процессы и блокировки
- Альтернатива на основе процессов: пакет multiprocessing (описывается далее)
- Анонимные каналы
- Зачем нужен пакет multiprocessing?
- И немножко меньше
- Модуль _thread
- Подробнее о глобальной блокировке интерпретатора (GIL)
Экскурсия по tkinter, часть 1
- Варианты компоновки: по сетке
- Запуск программ
- Запуск графических интерфейсов как самостоятельных программ другими способами: модуль multiprocessing
- Вывод результатов, возвращаемых диалогами, и передача данных обработчикам с помощью lambda-выражений
- Панель запуска демонстрации диалогов
- Настройка внешнего вида виджетов
- Темы этой главы
- Варианты компоновки: кнопки фиксированного размера
- Флажки, переключатели и ползунки
- «Умная» и многократно используемая кнопка Quit
- Пользовательские диалоги
- Независимые окна
- Entry
- С помощью PIL
- Прокрутка и холсты (забегая вперед)
- Берегите свои переменные!
- Виджеты Message и Entry
- Компоновка элементов ввода в формах
- Диалоги
- Виджеты Toplevel и Tk
- Программирование, обеспечивающее повторное использование
- «Переменные» tkinter и альтернативные способы компоновки форм
- Создание миниатюр изображений с помощью пакета PIL
- Предоставление возможности динамического выбора цвета
- Переключатели
- Производительность: сохранение миниатюр в файлах
- Отображение других типов графических изображений с помощью PIL
- Стандартные (типичные) диалоги
- Переключатели и переменные
- Флажки
- Отображение всех изображений в каталоге
- Обмен данными между программами
- Другие события, доступные с помощью метода bind
- Другие способы реализации модальности
- Подробнее о событии
и методах quit и destroy - Привязка событий
- Флажки и переменные
- Создание модальных пользовательских диалогов
- Ползунки и переменные
- Модуль диалогов в старом стиле
- Развлечения с кнопками и картинками
- Настройка на этапе конструирования
- Основы PIL
- Message
- Ползунки
- Снова о создании модальных окон
- Окна верхнего уровня
- Изображения
- Прикрепление к фреймам
- Программирование виджетов Entry
- Другие стандартные диалоги
- Три способа использования графических интерфейсов
- Импортирование по имени в виде строки
- «Виджеты, гаджеты, графические интерфейсы… Бог мой!»
- Протоколы окна верхнего уровня
- Переключатели без переменных
Экскурсия по tkinter, часть 2
- Виджет Canvas
- События холстов
- Базовые операции с виджетом Canvas
- Привязка событий к конкретным элементам
- Сочетание grid и pack
- Поддержка Юникода в PyEdit (забегая вперед)
- Более сложные операции с текстом и тегами
- Проблемы обработки текста, представленного байтами
- Использование циклов time. sleep
- Координаты
- Юникод и виджет Text
- Окна с меню и панелью инструментов
- «Простым» он назван обоснованно: PyEdit (забегая вперед)
- Композиция и наследование
- Холсты с поддержкой прокрутки и миниатюр изображений
- Прокрутка холстов
- Меню
- Сетки
- Реализация возможности растягивания виджетов, размещаемых по сетке
- Программирование полос прокрутки
- Сравнение методов grid и pack
- Другие темы, связанные с анимацией
- Создание объектов
- Меню окон верхнего уровня
- Другие анимационные эффекты
- Текст Юникода в строках
- Использование потоков выполнения в графических интерфейсах tkinter
- Теги объектов в виджете Canvas
- Другие проблемы двоичного режима
- Текст Юникода в файлах
- Компоновка полос прокрутки
- Меню на основе виджетов Frame и Menubutton
- Простые приемы воспроизведения анимации
- Использование виджетов Menubutton и Optionmenu
- Операции редактирования текста
- Юникод и виджет Text
- Программирование виджета Text
- Идентификаторы объектов и операции
- Конец экскурсии
- Основы работы с сеткой: еще раз о формах ввода
- Потоки выполнения и анимация
- Программирование виджетов списков
- Объединение колонок или рядов
- Позиция в строке
- В чем преимущества размещения по сетке?
- Текст является строкой Python
- Автоматизация создания меню
- Инструменты синхронизации, потоки выполнения и анимация
- Создание крупных таблиц с помощью grid
- Другие виджеты и их параметры
- Виджеты Listbox и Scrollbar
- Использование метода after
- Типы строк в виджете Text
- Использование событий widget. after
- Скрытие и перерисовка виджетов и окон
- Использование буфера обмена
- Виджет Text
- «Меню дня: Spam, Spam и еще раз Spam»
- Использование нескольких потоков выполнения с циклами time. sleep
- Инструменты отображения графики и реализации игровых программ
- Еще о прокрутке изображений: PyPhoto (забегая вперед)
- Программирование виджета Canvas
- Использование изображений в панелях инструментов
- Изменение размеров в сетках
Сервер PyMailCGI
- Система PyErrata
- Новые технологии: RIA и HTML 5
- Веб-приложения и настольные приложения
- PyMailCGI
- PyMailGUI и PyMailCGI
- Преимущества и недостатки сценариев CGI
- Общий вспомогательный модуль commonhtml. py
- Реализация собственного алгоритма шифрования
- Модуль secret. py
- Защищенные cookies
- HTTPS: защищенная передача данных по протоколу HTTP
- Шифрование данных вручную: PyCrypto
- Шифрование паролей в Py — MailCGI
- Исходный программный код вспомогательных модулей
- Удаление сообщений при загрузке с сервера
- Сохранение заголовков в файлах на стороне сервера
- Потенциальная ошибка рассинхронизации с почтовым ящиком
- Операция удаления и номера POP-сообщений
- Обработка загруженной почты
- Экранирование текста сообщения и паролей в HTML
- Передача информации о состоянии в скрытых полях форм HTML
- Страница просмотра сообщений
- Чтение почты с использованием прямых адресов URL
- Протоколы защиты данных
- Передача информации о состоянии в параметрах URL-ссылки
- Страница выбора почты из списка
- Чтение электронной почты по протоколу POP
- Использование сценария отправки почты без броузера
- Страницы с сообщениями об ошибках
- Сценарий отправки почты
- Страница составления сообщений
- Отправка почты по SMTP
- Настройка PyMailCGI
- Корневая страница
- Программное обеспечение типа «ручная кладь»
- Обзорное представление программы
- Новое в версии для предыдущего издания (версия 2.0)
- Ограничения на отправку вложений. (в этом издании)
- Новое в версии для четвертого издания (версия 3.0)
- Веб-сайт PyMailCGI
- «Список дел на поездку в Чикаго»
Сетевые сценарии
- Использование последовательных портов
- Многократно используемый класс формы
- Использование сеток и вызовов функций
- Использование фреймов рядов и команд
- Добавляем графический интерфейс пользователя
- Запуск сервера файлов и клиентов
- Простой файловый сервер на Python
- Сокеты и каналы
- Буферизация в других контекстах: еще раз о каналах
- Решения, чтобы избежать задержки вывода или взаимоблокировки, сценарии
- Построчная буферизация
- Требования потоков ввода-вывода
- Буферизация потоков ввода-вывода, вывод программы и взаимоблокировки
- Преобразование двоичных данных в текст
- Вспомогательный модуль перенаправления потоков ввода-вывода
- Придание сокетам внешнего вида файлов и потоков ввода-вывода
- Выбор конструкции сервера
- Способ реализации серверов — Twisted
- Инструменты модуля asyncore
- Неблокирующие сокеты
- Переносимость select
- Особенности вызова select
- Запуск сервера на базе select
- Эхо-сервер на базе select
- Мультиплексирование серверов с помощью select
- Классы серверов в стандартной библиотеке
- Многопоточные серверы
- Завершение дочерних процессов
- Ветвление процессов и сокеты
- Запуск ветвящегося сервера
- Ветвление серверов
- Обслуживание нескольких клиентов сервера
- Привязка сокетов к зарезервированным портам
- Подключение к зарезервированным портам
- Отклонение запросов клиентов на соединение
- Параллельный запуск нескольких клиентов сервера
- Советы по использованию удаленных серверов
- Практическое использование сокетов
- Запуск программ, использующих сокеты, на удаленном компьютере
- Запуск программ, использующих сокеты, на локальном компьютере
- Методы сокетов, используемые клиентом
- Передача строк байтов и объектов
- Методы сокетов, используемые сервером
- Основы сокетов
- Программирование сокетов
- О стандартах протоколов
- Библиотечные модули Python для Интернета
- Структуры протоколов
- Клиенты и серверы
- Правила нумерации портов сокета
- Слой протоколов интернета
- Номера портов компьютера
- Имена компьютеров
- Идентификаторы компьютеров
- Слой сокетов
- Трубопровод для Интернета
- Другие инструменты python
- COM и DCOM в Windows
- Инструменты синтаксического анализа XML и HTML
- Java и. NET: Jython и IronPy thon
- Брокеры объектных запросов CORBA
- Вебслужбы: XML-RPC, SOAP
- Полнофункциональные интернет-приложения
- Веб-Фреймворки и «облака»
- Серверные CGI-сценарии
- Инструменты поддержки протоколов на стороне клиента
- Сетевые инструменты
- Возможности разработки сценариев для Интернета на языке Python
- Фреймворки и инструменты высокого уровня
- Серверные веб-сценарии (CGI)
- Протоколы верхнего уровня
- Сокеты
статьи
- Google Chrome: «Не удалось корректно загрузить ваш профиль…»
- Установка кнопки «Произвольный символ» в полноэкранный режим
- Кнопка «Наверх» для сайта на jQuery
- Реализация класса «Дробь» на C#
- Черный экран при запуске Windows 8.1
- Стек на односвязном линейном списке
- Структура данных типа дек
- Как перемещать курсор в консоли (C, C++)
- Быстрый запуск программ в Windows
- Кнопка Наверх для сайта на jQuery
- Двусвязный список. Реализация на C
- Отладка программ с помощью функций вывода
- Как создать библиотеку классов в Microsoft Visual Studio 2013
- Понятие односвязного линейного списка и его реализация на языке C
- Установка драйвера для принтеров Canon LBP в Ubuntu
- Очередь с приоритетами
- Очередь на односвязном списке
- Установка кнопки Произвольный символ в полноэкранный режим
- Форматированный вывод в C#
- Реализация класса Дробь на C#
- Не получается запустить MongoDB shell в Ubuntu
- Изменение цвета в консоли (Си, Си++)
- Очередь на массиве и ее реализация на языке Си
- Прозрачные окна в windows 8
- Структура данных типа таблица
- Google Chrome:Не удалось корректно загрузить ваш профиль…»
- Реализация стека на массиве
- Горизонтальные полосы под панелью в Ubuntu
- Увеличение размера стека (Си, Си++)
- Переход на WordPress
- Разработка датчика случайных чисел, распределенных по требуемому закону
- Убираем лишнее из проводника в Windows 7-8-8.1
- Слепые пятна глаза
- Как установить драйвер видеокарты ATI Radeon под Windows 8
- Приближенное решение задачи Коши на C#
- Создаем проект Windows Forms в Visual Studio на C++
- Не получается зайти на сайт, хотя другие могут
- Как переформатировать флешку в NTFS
- C# открытие файла ассоциированной с ним программой
Структуры данных
- PyTree: универсальное средство просмотра деревьев объектов
- Встроенные инструменты обращения по следовательностей Python
- Встроенные инструменты сортировки Python
- Со встроенными типами: заключение Python
- Добавление функций сравнения Python
- Реализация сортировки Python
- Реализация обращения Python
- Обращение и сортировка последовательностей Python
- Перестановки последовательностей Python
- Перевод графов на классы Python
- Реализация поиска на графе Python
- Поиск на графах Python
- Деревья с ключами и значениями Python
- Реализация двоичных деревьев Python
- Встроенные возможности Python
- Двоичные деревья поиска Python
- Создание подклассов встроенных типов Python
- Алгебра отношений для множеств (внешний пример) Python
- Хронометраж работы в Python 3.1
- Оптимизация: перевод множеств на использование словарей Python
- Классы множеств Python
- Поддержка нескольких операндов Python
- Функции множеств Python
- Встроенные возможности Python
- Реализация множеств Python
- Дополнительно об анализе производительности Python
- Результаты в Python 3.1
- Хронометраж усовершенствований Python
- Оптимизация: непосредственная модификация списка в памяти Python
- Оптимизация: стеки в виде деревьев кортежей Python
- Индивидуальная настройка: мониторинг производительности Python
- Класс Stack Python
- Модуль stack Python
- Встроенные возможности Python
- Реализация стеков Python
- Структуры данных Python
Сценарии на стороне клиента
- Прочие возможности создания клиентских сценариев
- Вызов программ и экранирование текста
- Интерфейсы urllib
- Модуль http. client
- HTTP: доступ к веб-сайтам
- NNTP: доступ к телеконференциям
- Работа с клиентом командной строки pymail2
- Обновление клиента командной строки pymail
- Запуск сценария самотестирования mailtools
- Сценарий самотестирования mailtools
- Класс MailParser
- Инструменты синхронизации почтового ящика
- Декодирование Юникода полного текста сообщений при получении
- Класс MailFetcher
- Класс MailSender
- Класс MailTool
- Файл инициализации
- Вспомогательный пакет mailtools
- Работа с клиентом командной строки pymail
- Почтовый клиент командной строки
- Пакет email в Python 3.1 содержит мощные инструменты для анализа
- Обходное решение: ошибка при создании текстовых частей с символами не из диапазона ASCII
- Обходное решение: ошибка создания текста сообщения при наличии двоичных вложений
- Кодировка заголовков с адресами: при анализе и создании сообщения
- Кодировка заголовков сообщения: поддержка в пакете email
- Кодировка текстового содержимого: использование информации в заголовках для декодирования
- Кодировка текстового содержимого: обработка результатов смешанного типа
- Необходимость декодирования сообщений перед анализом
- Юникод, интернационализация и пакет email в Python 3.1
- Базовые интерфейсы пакета email в действии
- Содержимое Message
- Заголовки Message
- Тип Message
- Объекты Message
- Создание сообщения Message
- Анализ сообщений полученных с помощью модуля poplib или imaplib
- Пакет email: анализ и составление электронных писем
- Отправка почты из интерактивной оболочки
- Манипулирование заголовками From и To
- Проверка получения smtpmail
- Отправка сообщений smtpmail
- Сценарий отправки электронной почты по SMTP
- Получение и использование пакетов и инструментов сторонних разработчиков
- Применение стандартного модуля Python smtplib
- Запуск программы sendmail
- Вызов os. popen для запуса почтовой програм мы командной строки
- SMTP: отправка электронной почты
- Чтение почты из интерактивной оболочки
- Извлечение сообщений. Сеанс работы сценария popmail
- Сценарий чтения почты с сервера POP
- Модуль настройки электронной почты
- POP: чтение электронной почты
- Поддержка Юникода в Python 3.X и инструменты электронной почты
- Обработка электронной почты
- Загрузка деревьев каталогов с сервера
- Удаление деревьев каталогов на сервере
- Выгрузка локального дерева каталогов
- Передача деревьев каталогов с помощью ftplib
- Версия на основе классов
- Версия сценариев загрузки и выгрузки на основе функций
- Реорганизация сценариев выгрузки и загрузки для многократного использования
- Выгрузка на сервер: двоичный и текстовый режимы
- Запись всех локальных файлов
- Удаление всех файлов в копии на сервере
- Выгрузка каталогов сайтов
- Загрузка файлов: двоичный и текстовый режимы
- Выбор режима передачи в зависимости от типа файла
- Загрузка всех удаленных файлов
- Удаление всех локальных файлов
- Загрузка каталогов сайта
- Передача каталогов с помощью ftplib
- Добавляем пользовательский интерфейс
- Воспроизведение музыкальной темы Monty Python
- Утилита загрузки
- Утилиты FTP get и put
- Использование пакета urllib для загрузки файлов
- Передача файлов с помощью ftplib
- FTP: передача файлов по сети
Сценарии на стороне сервера
- Загрузка через CGI: принудительное решение
- Как же все-таки протолкнуть биты через Сеть
- Ограничения на выгрузку файлов. модели CGI в версии 3.1
- Обработка формата пути, используемого клиентом
- Выгрузка файлов клиента на сервер
- Отображение произвольных файлов сервера на стороне клиента
- Передача файлов между клиентами и серверами
- Конфликты HTML и URL: &
- Экранирование адресов URL, встроенных в разметку HTML
- Экранирование адресов URL
- Экранирование разметки HTML
- Инструменты Python для экранирования HTML и URL
- Соглашения по экранированию адресов URL
- Подробнее об экранировании HTML и URL
- Имитация ввода с помощью переменных оболочки
- Код разметки HTML
- Рефакторинг программного кода с целью облегчения его сопровождения
- Экранирование текста, встраиваемого в HTML и URL
- Переключатель «Hello World»
- Расширения модели CGI
- Базы данных на стороне сервера
- Обработка cookies с помощью модуля urllib. request
- Использование cookies в сценариях CGI
- Получение cookies
- Создание cookies
- Расширения модели CGI
- Скрытые поля форм
- Сохранение информации о состоянии в сценариях CGI
- Передача параметров в скрытых полях форм
- Передача параметров
- Отделение отображения от логики обработки
- Изменение размещения элементов формы ввода
- Форматирование строк
- Добавление стандартных инструментов ввода
- Отладка сценариев CGI
- Преобразование строк в сценариях CGI
- Табличная верстка форм
- Тестирование с помощью модуля urllib. request без использования броузера
- Поля ввода
- Дополнительно о тегах формы
- Передача данных
- Небуферизованный режим работы потока вывода (необязательно)
- Настройка пути поиска модулей (необязательная)
- Соглашения по каталогам и именам файлов
- Установка сценариев CGI
- Первый CGI-сценарий
- Использование минимальных адресов URL
- Основы HTML
- Первая веб-страница
- Вверх к познанию CGI
- Просмотр примеров серверных сценариев и их вывода
- Использование локального веб-сервера
- Выбор веб-сервера
- Запуск примеров серверных сценариев
- Создание CGI-сценариев на языке Python
- Что такое серверный CGI-сценарий?
- «До чего же запутанную паутину мы плетем…»
Текст и язык
- Урок 6: получайте удовольствие
- Добавление новых кнопок в новые компоненты Python
- Использование PyCalc как компонента
- Исходный программный код PyCalc
- Класс Evaluator
- Вычисление выражений с применением стеков Python
- Работа с PyCalc
- PyCalc — графический интерфейс «настоящего» калькулятора
- Расширение и прикрепление Python
- Выполнение строк программного кода Python
- Урок 4: встраивание лучше, чем парсеры
- Создание графического интерфейса Python
- Графический интерфейс простого калькулятора Python
- PyCalc: программа/объект калькулятора
- Парсеры и возможности Python
- Исследование деревьев синтаксического анализа с помощью PyTree
- Структура дерева синтаксического анализа Python
- Добавление интерпретатора дерева синтаксического анализа Python
- Реализация парсера Python
- Грамматика выражений Python
- Парсеры, написанные вручную Python
- Обработка текстов на естественных языках Python
- Урок 2: не нужно изобретать колесо
- Python как инструмент синтаксического анализа
- Дополнительные инструменты синтаксического анализа Python
- Извлечение простого текста из разметки HTML (еще раз)
- Обработка мнемоник HTML (еще раз)
- Анализ HTML
- Документация Python
- Сторонние инструменты Python
- Инструменты PyXML SIG
- Стандартная библиотека Python
- Прочие темы, связанные с XML
- Анализ с помощью парсера ElementTree
- Анализ с помощью парсера DOM
- Анализ с помощью парсера SAX
- Анализ с помощью регулярных выражений Python
- Анализ XML
- Синтаксический анализ XML и HTML
- Поиск совпадений с шаблонами в файлах заголовков C
- Дополнительные примеры шаблонов Python
- Шаблоны регулярных выражений Python
- Объекты соответствия Python
- Компилированные объекты шаблонов Python
- Функции модуля Python
- Использование модуля re
- Строковые операции и шаблоны Python
- Первые примеры Python
- Модуль re
- Поиск по шаблонам регулярных выражений Python
- Урок 1: делай прототип и переноси Python
- Синтаксический анализ строк правил и обратное преобразование Python
- Суммирование с помощью словарей Python
- Суммирование с помощью функции zip и генераторов
- Суммирование по колонкам в файле Python
- Анализ текста с помощью методов split и join
- Строковые методы Python
- Анализ текста в формате XML и HTML
- Стратегии обработки текста в Python
- Обработка текстовой информации Python 19в
Устройство компьютера
Железо
- Оперативная память. Аналогия работы.
- Как выбрать оперативную память.
- Организация и структура оперативной памяти.
- Ячейка оперативной памяти. Принцип работы.
- Оперативная память. Характеристики.
- Материнская плата или системная плата. Устройство и описание.
- Процессор. Устройство и работа.
- Как собрать компьютер самостоятельно.
- Устройство компьютера.