1. Введение в Litestar и настройка окружения
Введение в Litestar и настройка окружения
Что такое Litestar
Litestar — это современный Python-фреймворк для создания веб‑API и веб‑приложений поверх стандарта ASGI. На практике это означает, что приложение Litestar запускается через ASGI‑сервер (например, Uvicorn), умеет работать с async-кодом и хорошо подходит для высоконагруженных API.
Ключевые причины, почему Litestar часто выбирают для новых проектов:
Полезные источники:
Базовые понятия, которые понадобятся дальше
Перед тем как писать код, зафиксируем несколько терминов простыми словами:
GET /).!Упрощённая схема пути запроса от клиента до обработчика Litestar и обратно
Подготовка окружения
Чтобы примеры из курса работали одинаково у всех, важно изолировать зависимости проекта и фиксировать их.
Требования
pip для установки пакетов: Документация pipСоздание виртуального окружения
Виртуальное окружение позволяет держать зависимости проекта отдельно от глобальных пакетов системы.
Справка по venv: Документация venv
Установка Litestar и сервера Uvicorn
Минимально нам нужны два пакета:
litestar — сам фреймворкuvicorn — ASGI‑сервер для запуска приложенияУстановите зависимости:
Про Uvicorn: Документация Uvicorn
Первый запуск: минимальное приложение
Создайте файл app.py в корне проекта:
Что здесь происходит:
@get("/") регистрирует обработчик для HTTP‑метода GET и пути /.hello() возвращает словарь, который Litestar автоматически преобразует в JSON‑ответ.app = Litestar(...) создаёт ASGI‑приложение.Запустите приложение:
Разбор команды:
app:app означает модуль app.py и объект приложения app внутри него.--reload включает автоперезагрузку при изменениях кода (удобно для разработки).--port 8000 задаёт порт.Проверьте, что всё работает:
Ожидаемый результат:
Рекомендуемая структура проекта
На старте можно держать всё в одном файле, но уже со второго-третьего эндпоинта удобнее перейти к структуре модулей.
Пример простой структуры:
Идея такая:
app/main.py — точка входа, создаёт Litestar(...).app/routes.py — обработчики и маршруты.В следующих статьях курса мы будем развивать проект именно в таком стиле, чтобы код оставался читаемым.
Полезные инструменты для разработки (по желанию)
Эти инструменты не обязательны для старта, но помогают писать качественный код:
ruff для линтинга и форматирования: Документация Ruffpytest для тестов: Документация pytesthttpx для HTTP‑клиента в тестах: Документация HTTPXmypy для проверки типов: Документация mypypre-commit для автоматических проверок перед коммитом: Документация pre-commitЧастые проблемы при первом запуске
uvicorn не найдена: чаще всего виртуальное окружение не активировано.app:app: убедитесь, что файл называется app.py, а объект приложения действительно называется app.--port 8001.Итоги
Вы:
Дальше в курсе мы начнём расширять приложение: добавим несколько маршрутов, разберём параметры запроса и ответы, а затем перейдём к валидации, структуре проекта и более практичным API‑паттернам.