FastAPI: веб-разработка на Python Год издания: 2024 Автор: Любанович Билл Переводчик: Голуб Я. Издательство: Спринт Бук ISBN: 978-601-08-3847-5 Язык: Русский Формат: PDF/EPUB Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 288 Описание: FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преимущества актуальных возможностей Python. Как следует из названия, FastAPI отличается высоким быстродействием и способен конкурировать в этом с аналогичными фреймворками на таких языках, как Golang. Эта практическая книга расскажет разработчикам, знакомым с Python, как FastAPI позволяет достичь большего за меньшее время и с меньшим количеством кода. Билл Любанович рассказывает о тонкостях разработки с применением FastAPI и предлагает множество рекомендаций по таким темам, как формы, доступ к базам данных, графика, карты и многое другое, что поможет освоить основы и даже пойти дальше. Кроме того, вы познакомитесь с RESTful API, приемами валидации данных, авторизации и повышения производительности. Благодаря сходству с такими фреймворками, как Flask и Django, вы легко начнете работу с FastAPI.
Примеры страниц (скриншоты)
Оглавление
Предисловие..................................................................................................................................14 Условные обозначения....................................................................................................................16 Примеры кода.................................................................................................................................16 Благодарности................................................................................................................................17 От издательства..............................................................................................................................18 ЧАСТЬ I. ЧТО У НАС НОВОГО Глава 1. Современная Всемирная паутина.........................................................................................21 Обзор..............................................................................................................................................21 Сервисы и API..................................................................................................................................22 Конкурентность..............................................................................................................................26 Уровни (слои)..................................................................................................................................28 Данные...............................................................................................................................................32 Заключение......................................................................................................................................32 Глава 2. Современный Python.......................................................................................................33 Обзор..................................................................................................................................................33 Инструменты...................................................................................................................................33 Приступим к работе.....................................................................................................................34 API и сервисы..................................................................................................................................38 Переменные — это имена...............................................................................................................39 Подсказки типов............................................................................................................................40 Структуры данных.........................................................................................................................41 Веб-фреймворки............................................................................................................................41 Заключение......................................................................................................................................42 ЧАСТЬ II. ОБЗОР FASTAPI Глава 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. СОЗДАНИЕ ВЕБ-САЙТА Глава 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 Немного отвлечемся. Нужна ли вам аутентификация?.............................................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. ГАЛЕРЕЯ Глава 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 Приложение A. Дополнительная литература....................................................................271 Python..............................................................................................................................................271 FastAPI..............................................................................................................................................272 Starlette............................................................................................................................................273 Pydantic...........................................................................................................................................273 Приложение Б. Существа и люди.............................................................................................274 Существа.........................................................................................................................................275 Исследователи.............................................................................................................................278 Публикации исследователей................................................................................................279 Другие источники......................................................................................................................279 Об авторе..............................................................................................................................................280 Иллюстрация на обложке..............................................................................................................281 Алфавитный указатель...................................................................................................................282
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum