В прошлом уроке вы были посетителем ресторана. Теперь вы сами открываете кафе. Чтобы принимать гостей, нужно:
Помещение — это app = FastAPI(), ваше приложение.
Меню с блюдами — это эндпоинты (@app.get("/")): что и по какому адресу можно заказать.
Открыть двери — это запуск uvicorn: пока сервер не запущен, гости (запросы) войти не могут.
Дальше — всё по шагам.
Установка
Эти команды выполняются в терминале локально (в браузерном тренажёре сервер запустить нельзя — он живёт в сети). Установите фреймворк и сервер запуска:
📘терминал — установка
pip install fastapi uvicorn
Минимальный сервер
Создайте файл main.py:
📘main.py
from fastapi import FastAPI
app = FastAPI() # создаём приложение
@app.get("/") # эндпоинт: GET на адрес "/"
def read_root():
return {"message": "Привет, API!"}
@app.get("/ping")
def ping():
return {"status": "ok"}
Запуск
В терминале, в папке с файлом, выполните:
📘терминал — запуск
uvicorn main:app --reload
# main — имя файла main.py (без .py)
# app — имя переменной FastAPI() внутри файла
# --reload — авто-перезапуск при изменении кода (для разработки)
Теперь сервер работает по адресу http://127.0.0.1:8000. Откройте его в браузере — увидите JSON-ответ. А по адресу http://127.0.0.1:8000/ping — второй эндпоинт.
💡Совет
Магия FastAPI: откройте http://127.0.0.1:8000/docs — вы получите готовую интерактивную документацию (Swagger UI), где можно нажимать кнопки и тестировать свои эндпоинты прямо в браузере. FastAPI генерирует её сам из вашего кода.
Параметры в адресе
Эндпоинты умеют принимать параметры прямо из URL — FastAPI сам проверит тип:
Обработчики эндпоинтов — это обычные функцииИменованный блок кода, который можно вызывать многократно. Может принимать аргументы и возвращать результат.. Вот «сердцевина» двух эндпоинтов выше, без FastAPI. Что выведут вызовы?
▶ predict-handlers.py
Разбор.square(5) → 25. greet() вызвана без аргументаЗначение, которое передаётся функции при вызове. Внутри функции оно доступно как параметр., поэтому сработает значение по умолчанию — hello, гость. greet("Аня") → hello, Аня. Именно это делает FastAPI: берёт значение из URL и передаёт его в вашу функцию как аргумент.
⚠️ Частые ошибки новичков
Неверная команда запуска. В uvicorn main:app часть main — это имя файла без.py, а app — имя переменнойИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5.. Частые промахи ниже.
📘broken-run.sh (частые ошибки запуска)
# ❌ файл называется main.py, но .py указывать НЕ нужно
uvicorn main.py:app --reload
# Error: Could not import module "main.py"
# ❌ переменная называется app, а не server
uvicorn main:server --reload
# Error: Attribute "server" not found in module "main"
# ✅ правильно: имя_файла_без_py : имя_переменной
uvicorn main:app --reload
ℹ️Важно
✅ Что вы узнали
app = FastAPI() создаёт приложение; декоратор @app.get("/path") объявляет эндпоинт.
Сервер запускается командой uvicorn файл:переменная --reload.
Параметры берут из пути (/square/{number}) и из query-строкиТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). (/greet?name=Аня).
FastAPI сам строит интерактивную документацию на /docs.
Комментарии
Загрузка…
Загрузка комментариев…