2.2 HelloWorld на FastAPI
9 из 9 шагов пройдено
11 из 11 баллов  получено

Наконец, теперь мы можем перейти к нашему первому проекту 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

Здравствуйте,

В документации по FastApi в разделе установка https://fastapi.tiangolo.com/ru/#_4 (или раздел Установка FastAPI в учебнике: https://fastapi.tiangolo.com/ru/tutorial/#fastapi) написано, что устанавливать надо пакет:
pip install fastapi

Адрес пакета: https://pypi.org/project/fastapi/

Вы предлагаете устанавливать другой пакет:
pip install fastapi-slim

Адрес пакета: https://pypi.org/project/fastapi-slim/


Оба пакета ведут на одну и туже документацию и страницу гитхаба:

Documentation: https://fastapi.tiangolo.com

Source Code: https://github.com/tiangolo/fastapi

Поясните, пожалуйста, в чём разница между этими пакетами: fastapi-slim и fastapi.

Изменен cijir89068

@cijir89068, различия между ними в том, что пакет fastapi-slim содержит только основные библиотеки, необходимые для работы.

Ещё недавно при команде установки pip install fastapi, ставилось то, что сейчас ставится при pip install fastapi-slim.

Если хочется, то можно установить основной пакет fastapi, в этом случае устанавливать пакет Uvicorn не нужно, он уже есть в составе основного пакета fastapi.