# Запуск FastAPI с Unicorn на VPS под управлением Ubuntu 20.04
FastAPI — фрэймворк языка Python для создания RestAPI. FastAPI использует Pydantic — библиотеку для валидации данных — она поддерживает асинхронное программирование и запускается с помощью Uvicorn или Gunicorn.
В этой статье мы расскажем, как запустить простое приложение на FastAPI на VPS под управлением Ubuntu 20.04.
Для начала работы нам понадобятся:
- подготовленный к работе VPS под управлением Ubuntu;
- установленный Python3.
# Начало работы
Перед началом работы обновим список репозиториев apt:
sudo apt update
sudo apt upgrade
Далее установим дополнительный модуль для Python3, который позволит создавать виртуальные окружения:
sudo apt install python3-venv
Теперь создадим виртуальное окружение fa_venv:
python3 -m venv /path/to/new/virtual/environment/fa_venv
Здесь /path/to/new/virtual/environment — это путь к создаваемому виртуальному окружению fa_venv.
После создания активируем его:
source ./path to virtaul/environment/fa_venv/bin/activate
Если окружение успешно активировано, перед именем пользователя в консоли появится префикс с именем виртуального окружения. В нашем случае это будет выглядеть так:
(fa_venv) user@ubuntu_vps:
Теперь установим FastAPI в активное виртуальное окружение:
pip install fastapi
После этого установим ASGI сервер, с помощью которого будем запускать приложение:
pip install uvicorn [standart]
Здесь мы добавили параметр standart к устанавливаемому uvicorn, чтобы сразу же поставить несколько дополнительных зависимостей.
После установки необходимых пакетов можно переходить непосредственно к созданию и запуску приложения.
# Создание приложения
В папке приложения создадим файл main.py, в который поместим следующий код:
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
Это приложение будет отправлять в ответ на запрос указанный номер и текст запроса.
# Запуск приложения
Запускается приложение с помощью Uvicorn следующей командой:
uvicorn main:app --host 192.168.0.1
# Output
Uvicorn running on http://192.168.0.1:8000 (Press CTRL+C to quit)
Uvicorn стартует на указанном IP-адресе (в данном случае это 192.168.0.1) на порту 8000. Проверить работу приложения можно, отправив к указанному IP-адресу запрос. Откроем вторую консоль работы с сервером и выполним следующую команду:
user@ubuntu_vps:~# curl http://192.168.0.1:8000/items/6435?q=check_query_text
#Output
{"item_id":6435,"q":"check_query_text"}
Если отправить такой же запрос, но без параметров, и просто проверить, что показывает сервер на главной странице по адресу 192.168.0.1:8000, мы получим в ответ текст стандартного приветствия:
user@ubuntu_vps:~# curl http://192.168.0.1:8000
#Output
{"Hello":"World"}
Итак, мы описали запуск простого приложения на FastAPI. Создали его, запустили и получили от него ответ на запрос по заданной форме.