Создание и настройка собственного сервера
Имя проекта: cvai_fastapi_test
№1 платформа AI курсов (in Russian)
№1 Аренда VDS и VPS в России и Европе (in Russian)
Установка дополнительного ПО для работы приложения
- Установка Python:
Для начала убедитесь, что Python отсутствует в системе:
1. python3 --version
После этого рекомендуется обновить список доступных для загрузки пакетов:
1. sudo apt update
Далее установим последнюю версию Python и несколько связанных с ним зависимостей — пакетный менеджер, библиотеку с высокоуровневыми типами и модуль для создания виртуальных сред.
1.sudo apt install python3 python3-pip python3-dev python3-venv
Теперь, если запустить Python, откроется интерпретатор:
1.python3
Для проверки введем простой код и выполним его:
1.print("Hello, Timeweb Cloud")
В консоли появится результат выполнения:
1.Hello, Timeweb Cloud
Приступим к созданию проекта. Первым делом следует создать папку проекта и перейти в нее,
в Linux это можно сделать при помощи следующих команд:
1. mkdir cvai_fastapi_test
2. cd cvai_fastapi_test
Создание виртуальной среды
Теперь создадим в этой папке виртуальную среду:
1. python3 -m venv venv_ui
Если у Вас возникает следующая ошибка:
1. The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv package
using the following command.
2. Нужно установить venv следующей командой:
- sudo apt-get install python3-venv
3. После повторите команду создания виртуальной среды Python.
- python3 -m venv venv_OD
Активация виртуальной среды
Осталось активировать виртуальную среду при помощи команды:
1. source venv_ui/bin/activate
Деактивировать виртуальную среду при помощи команды:
1. deactivate
Установка FastAPI и дополнительное ПО
Для этого нам потребуется скачать данный репозиторий и установить пакеты pip с файла requirements.txt.
Проверка установленных пакетов:
1. pip3 list
Теперь установим пакеты из файла requirements.txt в нашу виртуальную среду:
1. pip install -r requirements.txt
Теперь сохраним список пакетов в файл requirements.txt. Если нужно:
1. python -m pip freeze > requirements.txt
Теперь снова проверим список установленных пакетов pip внутри виртуальной среды:
1. pip3 list
Запуск приложения FastAPI
Для этого нам потребуется запустить main.py.
main:app запустим следующей командой из терминала: uvicorn main:app –host 127.0.0.1 –port 8080 –workers 1: 1. uvicorn main:app запуск приложения в асинхронном варианте; 2. –host 127.0.0.1 ip - адрес для запуска на локальной машине; 3. –port 8080 порт через который будет передача данных клиент-сервер; 4. -workers 1 количество рабочих процессов.
1. uvicorn main:app --host 127.0.0.1 --port 8080 --workers 1
Разберем немного подробнее эту команду uvicorn main:app –host 127.0.0.1 –port 8080 –workers 1:
·После флага --host мы указываем IP-адрес локального хоста (localhost).
·После флага --port мы указываем номер свободного порта для TCP/UDP-соединения. Обратите внимание, что это не 80 порт HTTP-протокола.
·Параметр main указывает на название запускаемого модуля. По умолчанию это название python-файла.
·Параметр app указывает на экземпляр приложения, который создается внутри кода.
·Флаг --reload указывает Uvicorn самостоятельно отслеживать изменения в исходных файлах и автоматически перезапускать сервер. Этот флаг следует использовать только во время разработки.
Стандартная конфигурация возвращает JSON-объект с сообщением «Hello World». Чтобы убедиться в этом, можно сделать curl-запрос:
curl -X "GET" "http://localhost:8000"
Флаг -X здесь равнозначен более длинной форме --request, которая необходима для изменения метода HTTP-запроса на GET.
конец