ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ 3

Раздел I. ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON 5

ГЛАВА 1. ВВЕДЕНИЕ 5
1.1. Переменные 6
1.2. Оператор присваивания 6
1.3. Множественное присваивание 6
1.4. Присваивание по значению и ссылке 7
1.5. Комментарии 8

ГЛАВА 2. ЧИСЛОВЫЕ ТИПЫ ДАННЫХ 8
2.1. Разновидности числового типа данных 8
2.2. Логический тип данных 11

ГЛАВА 3. СТРУКТУРЫ ДАННЫХ 13
3.1. Cписки 13
3.2. Диапазоны 19
3.3. Кортежи 19
3.4. Словари 21
3.5. Строки 23
3.6. Строки unicode 25
3.7. Контрольные вопросы и упражнения 26

ГЛАВА 4. ОПЕРАТОРЫ 27
4.1. Вывод данных 27
4.2. Условный оператор 29
4.3. Особенности операторов сравнения 30
4.4. Операторы цикла 30

ГЛАВА 5. ФУНКЦИИ 32
5.1. Передача в функцию переменного числа аргументов 35
5.2. Область видимости переменных 36
5.3. Использование lambda-функций 37
5.4. Функции работы со структурами данных 37
5.5. Документирование функций 40
5.6. Контрольные вопросы и упражнения 41

ГЛАВА 6. ВВОД И ВЫВОД ДАННЫХ 41
6.1. Ввод данных 41
6.2. Форматированный ввод/вывод 43
6.3. Операции с файлами 48
6.4. Контрольные вопросы и упражнения 51

ГЛАВА 7. ВЫРАЖЕНИЯ В PYTHON 51

ГЛАВА 8. МОДУЛИ В PYTHON 53
8.1. Использование модулей 53
8.2. Подключение модулей 53
8.3. Каскадное подключение модулей 54
8.4. Поиск модулей 55
8.5. Компиляция модулей 56
8.6. Документирование модулей 56
8.7. Стандартные модули Python 57

ГЛАВА 9. ПАКЕТЫ 59
9.1. Создание пакета 59
9.2. Установка пакетов 61

ГЛАВА 10. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 63
10.1. Классы 63
10.2. Создание и вызов объектов 64
10.3. Методы 64
10.4. Атрибуты класса 66
10.5. Управление атрибутами 67
10.6. Наследование 69
10.7. Инкапсуляция 72
10.8. Дополнительные возможности «новых» классов 73
10.9. Структуры 83
10.10. Исключения и классы 83

Раздел II. СЕРВЕР ПРИЛОЖЕНИЙ ZOPE 85

ГЛАВА 1. ОБЩИЕ ПРИНЦИПЫ ФУНКЦИОНИРОВАНИЯ 85
1.1. Объектная модель Zope 88
1.2. Динамически подставляемые данные 91
1.3. Организация хранения данных 91
1.4. Механизм заимствования 92
1.5. Способы разработки Web-приложений в Zope 93
1.6. Контрольные вопросы и упражнения 93

ГЛАВА 2. ИНТЕРФЕЙС УПРАВЛЕНИЯ ZOPE 94
2.1. Создание нового объекта 96
2.2. Переименование и удаление объекта 97
2.3. Вырезка и вставка объекта. 97
2.4. Отмена изменений 98

ГЛАВА 3. ОБЪЕКТЫ ZOPE 99
3.1. Свойства объектов 99
3.2. Объект Каталог (Folder Objects) 100
3.3. DTML Document и DTML Мetod 102
3.4. Объект File 105
3.5. Объект Image 107
3.6. Контрольные вопросы и упражнения 107

ГЛАВА 4. ЯЗЫК DTML 108
4.1. Команды DTML 109
4.2. Динамическая подстановка значений. 109
4.3. Шаблон объектов DTML Document и DTML Method 110
4.4. Атрибуты команды dtml-var 111
4.5. Создание переменных 113
4.6. Пространство имен 114
4.7. Обработка условий 116
4.8. Циклические операции 119
4.9. Использование атрибутов в выражениях Python 122
4.10. Вызов методов 123
4.11. Комментарии 124
4.12. Управление объектами 125
4.13. Контрольные вопросы и упражнения 127

ГЛАВА 5. ПРИМЕР ПРОСТОГО ПРИЛОЖЕНИЯ 128
5.1. Определение требований к приложению 128
5.2. Построение системы навигации по сайту 128
5.3. Титульные страницы 129
5.4. Усовершенствование навигации 131
5.5. Использование CCS 133
5.6. Разметка страниц 134
5.7. Файловая библиотека 140

ГЛАВА 6. СКРИПТЫ PYTHON 142
6.1. Трехуровневая модель 142
6.2. Создание скрипта 142
6.3. Особенности использования оператора print 144
6.4. Пример скрипта 144
6.5. Переменные окружения скрипта 145
6.6. Вызов скриптов 146
6.7. Вызов скриптов с использованием Web-запроса 146
6.8. Вызов скриптов из других объектов 147
6.9. Передача параметров 148
6.10. Скрипты и безопасность 148
6.11. Встроенные функции 150
6.12. Обработка форм 152
6.13. Контрольные вопросы и упражнения 157

ГЛАВА 7. ВНЕШНИЕ МЕТОДЫ 158
7.1. Создание и редактирование внешних методов 158
7.2. Ограничения использования внешних методов 160
7.3. Контрольные вопросы и упражнения 160

ГЛАВА 8. СИСТЕМА БЕЗОПАСНОСТИ ZOPE 160
8.1. Архитектура системы безопасности Zope 161
8.2. Определение прав пользователя 163
8.3. Регистрация новых пользователей 164
8.4. Типичные случаи настройки системы безопасности 167

ГЛАВА 9. ИНДЕКСАЦИЯ И ПОИСК 168
9.1. Массовая индексация 169
9.2. Создание объекта ZCatalog 169
9.3. Каталогизация объектов 171
9.4. Построение интерфейса поиска 173
9.5. Метаданные 175
9.6. Поиск из Python 178
9.7. Индексы 179
9.8. Текстовые индексы 181
9.9. Индексы по атрибутам объектов 184
9.10. Индексы по датам 188
9.11. Индексы по ключевым словам 189
9.12. Индексирование по пути 190
9.13. Индекс типа TopicIndex 190
9.14. Хранимые запросы 191
9.15. Автоматическая каталогизация 192

ГЛАВА 10 СВЯЗЬ С РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ 192
10.1. Соединения с базами данных 193
10.2. Использование методов ZSQL 196
10.3. Динамические шаблоны и тег sqlvar 200
10.4. Вызов метода ZSQL 200
10.5. Построение поисковой формы 201
10.6. Операции сравнения в запросах 203
10.7. Построение сложных запросов 204

ГЛАВА 11. ЯЗЫК ПОСТРОЕНИЯ ШАБЛОНОВ 207
11.1. Недостатки DTML 207
11.2. Компоненты ZPT 207
11.3. Использование ZPT 208
11.4. Объекты Zope Page Template 209
11.5. TAL namespace 210
11.6. Выражения пути 211
11.7. Выражения TAL 212
11.8. Определение переменных 213
11.9. Подстановка значений 213
11.10. Управление атрибутами 214
11.11. Замена тега 215
11.12. Создание циклов 216
11.13. Условная вставка или удаление элемента (condition) 218
11.14. Обработчик ошибок времени выполнения (on-error) 219
11.15. Пропуск элемента (omit-tag) 219
11.16. Порядок выполнения 219

ГЛАВА 12. ВЫРАЖЕНИЯ TALES 220
12.1. Типы выражений TALES 221
12.2. Встроенные имена 221
12.3. Выражения пути 222
12.4. Строковые выражения 224
12.5. Использование выражений Python 225
12.6. Выражение Not 226
12.7. Выражение nocall 226
12.8. Выражение exists 226

ГЛАВА 13. ЯЗЫК ОПРЕДЕЛЕНИЯ МАКРОСОВ METAL 227
13.1. Выражение metal:define-macro 227
13.2. Выражение metal:use-macro 227
13.3. Выражение metal:define-slot 228
13.4. Выражение metal:fill-slot 230

ЗАКЛЮЧЕНИЕ 231

Приложение I. ВСТРОЕННЫЕ ФУНКЦИИ PYTHON 232

Приложение II. ZOPE API 240
ОБЪЕКТНАЯ МОДЕЛЬ 240
КЛАСС OBJECTMANAGER 240
КЛАСС OBJECTMANAGERITEM 242
КЛАСС PROPERTY MANAGER 243
КЛАСС PROPERTYSHEET 245
КЛАСС PROPERTYSHEETS 246
КЛАСС REQUEST 247
КЛАСС RESPONSE 250

БИБЛИОГРАФИЯ 251