Книга: FastAPI: веб-разработка на Python
На главную: Предисловие
Дальше: От издательства

Предисловие

Перед вами прагматичное введение в FastAPI — современный веб-фреймворк на Python. Это история о том, как время от времени встречающиеся нам яркие и блестящие предметы могут оказаться очень полезными. Серебряная пуля не помешает, если вы столкнетесь с оборотнем. (А в этой книге вы еще встретитесь с оборотнями.)

Я начал программировать научные приложения в середине 1970-х годов. И после первого знакомства с Unix и C на компьютере PDP-11 в 1977 году у меня появилось чувство, что Unix может укорениться.

В 1980-х и начале 1990-х годов Интернет был еще некоммерческим, но уже служил хорошим источником свободного программного обеспечения и технической информации. И когда в 1993 году в зарождающемся открытом Интернете появился браузер Mosaic, у меня возникло ощущение, что эта веб-возможность может прижиться.

Когда через несколько лет я открыл собственную компанию по веб-разработке, моими инструментами были самые обычные на тот момент PHP, HTML и Perl. Несколько лет спустя, работая по контракту, я наконец-то поэкспериментировал с Python и был удивлен тем, как быстро смог получить доступ к данным, манипулировать ими и отображать их. В свободное время за две недели я смог воспроизвести бо́льшую часть приложения на языке C, на написание которого у четырех разработчиков ушел год. Теперь у меня было ощущение, что история с Python — это хорошо.

После этого бо́льшая часть моей работы была связана с Python и его веб-фреймворками, в основном Flask и Django. Мне особенно понравилась простота Flask, и я предпочитаю использовать этот фреймворк для многих задач. А несколько лет назад я заметил нечто мелькнувшее на периферии моего зрения — новый веб-фреймворк на Python под названием FastAPI, написанный Себастьяном Рамиресом.

Я был впечатлен его продуманностью в процессе чтения превосходной документации (https://fastapi.tiangolo.com). В частности, страница описания — history (https://oreil.ly/Ds-xM) — показывает, насколько тщательно автор оценивал альтернативные варианты. Это был не эго-проект или забавный эксперимент, а серьезная основа для разработки в реальном мире. У меня было ощущение, что FastAPI может прижиться.

С помощью FastAPI я написал биомедицинский API-сайт, и все прошло настолько хорошо, что в течение следующего года наша команда переписала старый основной API на базе FastAPI. Он до сих пор находится в эксплуатации и отлично себя зарекомендовал. Наша группа изучила основы, приведенные в этой книге, и все заметили, что мы стали писать более качественный код, быстрее и с меньшим количеством ошибок. И кстати, некоторые из нас раньше не писали на Python — только я использовал FastAPI. Поэтому, когда появилась возможность предложить издательству O’Reilly продолжение моей книги под названием «Простой Python», FastAPI был на первом месте в списке тем. На мой взгляд, FastAPI окажет как минимум такое же влияние, как Flask и Django, а может, и большее.

Как я уже упоминал, на самом сайте FastAPI представлена документация мирового уровня, включающая множество подробностей по обычным веб-темам: базы данных, аутентификация, развертывание и т.д. Так зачем же писать что-то еще?

Эта книга не претендует на то, чтобы стать исчерпывающим материалом, потому что такой объем будет утомителен для читателя. Ее предназначение — быть полезной, помочь вам быстро понять основные идеи FastAPI и применить их на практике. Я укажу на различные приемы, потребовавшие определенных изысканий, и дам советы по использованию лучших практик в повседневной жизни.

В начале каждой главы я рассказываю о предстоящем материале. Далее стараюсь не забыть о том, что только что обещал, предлагая детали и отступления от темы. И наконец, делаю краткий обзор.

Как говорится, «это мнения, на которых основаны мои факты». Ваш опыт будет уникальным, но я надеюсь, что вы найдете здесь достаточно полезного, чтобы стать более продуктивным веб-разработчиком.

Условные обозначения

В этой книге используются следующие шрифтовые обозначения.

Курсив

Отмечает новые термины.

Рубленый шрифт

Им обозначены URL-адреса, адреса электронной почты и элементы интерфейса.

Моноширинный шрифт

Используется для примеров программного кода, а также внутри абзацев для ссылки на элементы программы, такие как имена переменных или функций, базы данных, типы данных, переменные окружения, операторы, ключевые слова, а также имена и расширения файлов.

Моноширинный полужирный шрифт

Показывает команды или другой текст, который должен быть набран пользователем буквально.

Моноширинный курсивный шрифт

Показывает текст, требующий замены значением, заданным пользователем или определяемым контекстом.

Этот элемент означает общее замечание.

Этот значок означает совет.

Примеры кода

Дополнительные материалы (примеры кода, упражнения и т.д.) доступны для скачивания на странице https://github.com/madscheme/fastapi.

Если у вас возникли технические вопросы или проблемы с использованием примеров кода, отправьте электронное письмо на наш почтовый ящик [email protected].

В общем случае все примеры кода из книги вы можете использовать в своих программах и в документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Если вы разрабатываете программу и используете в ней несколько фрагментов кода из книги, вам не нужно обращаться за разрешением. Но для продажи или распространения примеров из книги вам потребуется разрешение от издательства O’Reilly. Вы можете отвечать на вопросы, цитируя данную книгу или примеры из нее, но для включения существенных объемов программного кода из книги в документацию вашего продукта потребуется разрешение.

Мы рекомендуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание авторов, издательства и ISBN.

За получением разрешения на использование значительных объемов программного кода из книги обращайтесь по адресу [email protected].

Благодарности

Хотелось бы поблагодарить множество людей из различных организаций: школы Serra High School, Питтсбургского университета, лаборатории хронобиологии Миннесотского университета, авиакомпании Northwest Airlines, компаний Crosfield-Dicomed, Tela, WAM!NET, Mad Scheme, SSESCO, Intradyn, Keep, Cray, Penguin Computing, Flywheel, медиакомпании Thomson Reuters, организаций Intran и «Архив Интернета», стартапа CrowdStrike. Я многому у вас научился.

Дальше: От издательства