Установка FastAPI с Unicorn на Ubuntu 20.04

В этой статье мы детально разберем процесс установки и первичной настройки высокопроизводительного веб-фреймворка FastAPI на сервере под управлением Ubuntu 20.04.

FastAPI: что это такое

FastAPI — это современный фреймворк для разработки веб-приложений и API на Python. Если говорить простыми словами, это готовый набор инструментов и библиотек, который позволяет разработчику быстро создавать бэкенд-логику для сайтов и сервисов, не отвлекаясь на рутинную настройку инфраструктуры.

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

Ключевые преимущества FastAPI

Название фреймворка говорит само за себя, однако его сильные стороны не ограничиваются одной лишь скоростью работы.

  • Высокая производительность. FastAPI показывает отличные результаты в бенчмарках, часто обходя такие популярные решения, как Django и Flask. Это касается не только количества обрабатываемых запросов в секунду, но и скорости разработки: для запуска минимального приложения достаточно всего 5 строк кода.
  • Встроенная валидация данных. Механизм проверки входящих данных работает автоматически, включая глубоко вложенные JSON-запросы. При обнаружении несоответствия типов фреймворк возвращает понятное обоснование ошибки в формате JSON. По заявлению авторов, такая система сокращает количество потенциальных багов в коде примерно на 40%.
  • Нативная поддержка асинхронности. FastAPI полностью поддерживает асинхронное программирование (из коробки), что стало возможным благодаря внедрению этой функции в Python начиная с версии 3.4. Благодаря этому запросы обрабатываются параллельно, а не последовательно, что критически сокращает время ответа сервера при высокой нагрузке.
  • Автоматическая генерация документации. Фреймворк сам создает удобную и наглядную документацию для вашего API. Разработчики могут легко получить доступ как к стандартной, так и к альтернативной спецификации всех конечных точек. Это упрощает командную работу, тестирование и интеграцию с фронтенд-частью проектов.

Как установить FastAPI с Uvicorn на VPS: инструкция

Установка фреймворка состоит из двух основных шагов:

  1. Подготовка окружения Python.
  2. Установка и запуск FastAPI.

Рассмотрим каждый из них подробнее.

Шаг 1. Подготовка окружения Python

  1. Подключитесь к вашему VPS-серверу через SSH.
  2. Обновите системные пакеты до актуальных версий:
    sudo apt update && sudo apt upgrade -y
  3. В большинстве сборок Ubuntu Python уже предустановлен. Проверьте его наличие командой:
    python3 -V

    Если в ответ вы видите версию, например, Python 3.8.10 — всё в порядке. Если система сообщает об ошибке, выполните установку вручную:

    sudo apt install python3
  4. Установите модуль venv для создания изолированных виртуальных сред:
    sudo apt install python3-venv

Шаг 2. Установка FastAPI

  1. Снова подключитесь к серверу по SSH (если сессия была прервана).
  2. Создайте рабочую директорию для будущего проекта и перейдите в неё:
    mkdir fast_project
    cd fast_project

    Замените fast_project на ваше собственное имя каталога.

  3. Создайте виртуальное окружение внутри этой папки:
    python3 -m venv fast_venv
  4. Активируйте созданное окружение:
    source fast_venv/bin/activate

    Имя fast_venv также можно изменить по вашему усмотрению.

  5. Установите FastAPI с дополнительным набором инструментов для продакшн-среды:
    pip install "fastapi[standard]"
  6. Проверьте успешность установки, запросив версию фреймворка:
    python -m fastapi --version

    Если в терминале отобразилась информация о версиях зависимостей — установка прошла корректно.

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

Создание и запуск тестового проекта на FastAPI с Uvicorn

Чтобы убедиться, что всё работает, создадим простое приложение.

  1. Находясь в директории fast_project, создайте файл main.py:
    nano main.py
  2. Вставьте в него следующий код:
    from fastapi import FastAPI
    app = FastAPI()
    @app.get("/")
    async def root():
     return {"message": "Hello World"}

    Сохраните файл (Ctrl+O) и закройте редактор (Ctrl+X).

  3. Запустите приложение с помощью сервера Uvicorn (он был установлен вместе с FastAPI):
    uvicorn main:app

    Если вы назвали файл иначе, укажите ваше имя вместо main.

    В консоли должна появиться информация о запуске сервера на локальном порту.

  4. Откройте второе окно терминала, подключитесь к серверу и отправьте тестовый запрос:
    curl http://localhost:8000

    В ответ вы должны получить JSON-строку:

    {"message": "Hello World"}

    Это означает, что ваше приложение FastAPI успешно развернуто и готово к работе.

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