Предисловие....14
Условные обозначения....16
Примеры кода....16
Благодарности....17
От издательства....18
Часть I. Что у нас нового?....19
Глава 1. Современная Всемирная паутина....21
Обзор....21
Сервисы и API....22
Конкурентность....26
Уровни (слои)....28
Данные....32
Заключение....32
Глава 2. Современный Python....33
Обзор....33
Инструменты....33
Приступим к работе....34
API и сервисы....38
Переменные — это имена....39
Подсказки типов....40
Структуры данных....41
Веб-фреймворки....41
Заключение....42
Часть II. Обзор FastAPI....43
Глава 3. Обзор FastAPI....44
Обзор....44
Что такое FastAPI....44
Приложение FastAPI....45
HTTP-запросы....49
HTTP-ответы....57
Автоматизированная документация....62
Комплексные данные....65
Заключение....65
Глава 4. Асинхронность, конкурентность и обзор библиотеки Starlette....66
Обзор....66
Библиотека Starlette....66
Типы конкурентности....67
FastAPI и асинхронность....73
Непосредственное использование Starlette....75
Немного отвлечемся: уборка в доме из игры Clue....76
Заключение....78
Глава 5. Pydantic, подсказки типов и обзор моделей....79
Обзор....79
Подсказки типов данных....79
Группировка данных....82
Альтернативы....86
Простой пример....88
Проверка типов....91
Проверка значений....92
Заключение....94
Глава 6. Зависимости....95
Обзор....95
Что такое зависимости?....95
Проблемы с зависимостями....96
Внедрение зависимостей....96
Зависимости FastAPI....96
Написание зависимостей....97
Область действия зависимости....98
Заключение....100
Глава 7. Сравнение фреймворков....101
Обзор....101
Flask....102
Django....105
Другие функциональные возможности веб-фреймворка....105
Базы данных....106
Рекомендации....107
Другие веб-фреймворки Python....107
Заключение....108
Часть III. Создание веб-сайта....109
Глава 8. Веб-уровень....111
Обзор....111
Немного отвлечемся: сверху вниз, снизу вверх, от центра наружу?....112
Проектирование RESTful API....113
Макет сайта с файлами и каталогами....115
Первый код веб-сайта....117
Запросы....119
Несколько маршрутизаторов....121
Создание веб-уровня....122
Определение моделей данных....122
Заглушки и фиктивные данные....123
Создание общих функций с помощью стека....123
Создание фиктивных данных....124
Тестирование!....128
Использование форм автоматизированного тестирования FastAPI....130
Общение с уровнями сервисов и данных....132
Пагинация и сортировка....132
Заключение....134
Глава 9. Сервисный уровень....135
Обзор....135
Определение сервиса....135
Макет....136
Защита....136
Функции....137
Тестирование!....138
Другие нюансы сервисного уровня....140
Заключение....142
Глава 10. Уровень данных....143
Обзор....143
DB-API....143
SQLite....145
Макет....147
Заставляем все это работать....147
Тестирование!....152
Заключение....164
Глава 11. Аутентификация и авторизация....165
Обзор....165
Немного отвлечемся 1. Нужна ли вам аутентификация?....166
Методы аутентификации....167
Глобальная аутентификация — секретный ключ или общий секрет (Shared Secret)....167
Простая индивидуальная аутентификация....171
Более сложная индивидуальная аутентификация....172
Авторизация....184
Промежуточное программное обеспечение....185
Заключение....188
Глава 12. Тестирование....189
Обзор....189
Тестирование Web API....189
Где тестировать....190
Что тестировать....191
Pytest....192
Макет....192
Автоматизированные модульные тесты....193
Автоматизированные интеграционные тесты....204
Паттерн «репозиторий»....205
Автоматизированные полные тесты....205
Тестирование безопасности....208
Нагрузочное тестирование....208
Заключение....209
Глава 13. Запуск в эксплуатацию....210
Обзор....210
Развертывание....210
Производительность....214
Устранение неполадок....216
Заключение....218
Часть IV. Галерея....219
Глава 14. Базы данных, наука о данных и немного искусственного интеллекта....220
Обзор....220
Альтернативные варианты хранения данных....220
Реляционные базы данных и SQL....221
Нереляционные (NoSQL) базы данных....226
Возможности NoSQL в базах данных SQL....227
Нагрузочное тестирование баз данных....228
Наука о данных и искусственный интеллект....230
Заключение....233
Глава 15. Файлы....234
Обзор....234
Поддержка Multipart....234
Выгрузка файлов....234
Загрузка файлов....237
Предоставление статических файлов....239
Заключение....240
Глава 16. Формы и шаблоны....241
Обзор....241
Формы....241
Шаблоны....244
Заключение....246
Глава 17. Обнаружение и визуализация данных....247
Обзор....247
Python и данные....247
Текстовый вывод с помощью PSV....248
Источник данных SQLite и веб-вывод....251
Заключение....259
Глава 18. Игры....260
Обзор....260
Игровые пакеты в Python....260
Разделение игровой логики....261
Гейм-дизайн....261
Первая веб-часть — инициализация игры....263
Вторая веб-часть — этапы игры....264
Первая сервисная часть — инициализация....266
Вторая сервисная часть — определение результатов....266
Тестируем!....267
Данные — инициализация....268
Давайте поиграем в «Криптономикон»....268
Заключение....270
Приложение А. Дополнительная литература....271
Python....271
FastAPI....272
Starlette....273
Pydantic....273
Приложение Б. Существа и люди....274
Существа....275
Исследователи....278
Публикации исследователей....279
Другие источники....279
Об авторе....280
Иллюстрация на обложке....281
Алфавитный указатель....282
FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преимущества актуальных возможностей Python. Как следует из названия, FastAPI отличается высоким быстродействием и способен конкурировать в этом с аналогичными фреймворками на таких языках, как Golang. Эта практическая книга расскажет разработчикам, знакомым с Python, как FastAPI позволяет достичь большего за меньшее время и с меньшим количеством кода.Билл Любанович рассказывает о тонкостях разработки с применением FastAPI и предлагает множество рекомендаций по таким темам, как формы, доступ к базам данных, графика, карты и многое другое, что поможет освоить основы и даже пойти дальше. Кроме того, вы познакомитесь с RESTful API, приемами валидации данных, авторизации и повышения производительности. Благодаря сходству с такими фреймворками, как Flask и Django, вы легко начнете работу с FastAPI.