Наконец, теперь мы можем перейти к нашему первому проекту FastAPI. Наша цель в этом разделе — познакомить с работой в FastAPI, создав простое приложение.
Работать мы будем в PyCharm, рассмотрим создания проекта. Мы его создаем как обычный проект Python:
Далее нам необходимо установить FastAPI в нашу виртуальную среду:
pip install fastapi-slim
Посмотрим какие библиотеки были установлены:
(.venv) permin0ff@Mac hello_word % pip freeze
annotated-types==0.6.0
anyio==4.2.0
fastapi==0.109.0
idna==3.6
pydantic==2.5.3
pydantic_core==2.14.6
sniffio==1.3.0
starlette==0.35.1
typing_extensions==4.9.0
На этом этапе мы установили все необходимые зависимости модулей FastAPI из компонентов модулей pydantic и starlette в вашей среде Python. Подробнее о них мы поговорим далее по курсу.
Теперь нам нужно установить пакет Uvicorn для обслуживания приложения FastAPI:
pip install "uvicorn[standard]"
Это сервер асинхронного интерфейса шлюза сервера (ASGI), используемый для производства. FastAPI дает разработчику преимущество асинхронной обработки запросов.
Посмотрим какие библиотеки были установлены:
(.venv) permin0ff@Mac hello_word % pip freeze
annotated-types==0.6.0
anyio==4.2.0
click==8.1.7
fastapi==0.109.0
h11==0.14.0
httptools==0.6.1
idna==3.6
pydantic==2.5.3
pydantic_core==2.14.6
python-dotenv==1.0.0
PyYAML==6.0.1
sniffio==1.3.0
starlette==0.35.1
typing_extensions==4.9.0
uvicorn==0.25.0
uvloop==0.19.0
watchfiles==0.21.0
websockets==12.0
"Стандартная" опция устанавливает зависимости на основе Cython, такие, как uvloop, httptools и websockets. Если вы хотите установить и использовать полноценный сервер uvicorn, вам следует запустить команду pip install uvicorn. Установленный uvicorn представляет собой сервер на базе ASGI, на котором будут запускаться ваши приложения FastAPI. Сервер интерфейса асинхронного серверного шлюза (ASGI), который использует FastAPI, делает его самой быстрой платформой Python на момент написания. Сервер uvicorn может запускать как синхронные, так и асинхронные сервисы.
Также мы можем установить FastAPI вместе с сервером Uvicorn используя одну команду pip install fastapi, но в результате будет установлено много лишних зависимостей, которые мы пока не будем использовать.
После установки и настройки основных модулей давайте приступим к нашей первой реализации API с использованием фреймворка в следующем шаге.
При установке FastAPI список зависимостей поболее будет, uvicorn уже поставляется с основным пакетом
annotated-types==0.6.0
anyio==4.3.0
certifi==2024.2.2
click==8.1.7
colorama==0.4.6
dnspython==2.6.1
email_validator==2.1.1
fastapi==0.111.0
fastapi-cli==0.0.3
h11==0.14.0
httpcore==1.0.5
httptools==0.6.1
httpx==0.27.0
idna==3.7
Jinja2==3.1.4
markdown-it-py==3.0.0
MarkupSafe==2.1.5
mdurl==0.1.2
orjson==3.10.3
pydantic==2.7.1
pydantic_core==2.18.2
Pygments==2.18.0
python-dotenv==1.0.1
python-multipart==0.0.9
PyYAML==6.0.1
rich==13.7.1
shellingham==1.5.4
sniffio==1.3.1
starlette==0.37.2
typer==0.12.3
typing_extensions==4.11.0
ujson==5.9.0
uvicorn==0.29.0
watchfiles==0.21.0
websockets==12.0
@Шамбер_Егор, Да, действительно. 3 мая они обновили это, ранее эти зависимости были в пакете
fastapi[all]. Будем тогда устанавливать какpip install fastapi-slim