Разработка FastAPI с помощью VS Code

VS Code (полное название Visual Studio Code) — это бесплатный кроссплатформенный редактор кода с открытым исходным кодом, выпущенный Microsoft.

VS Code поддерживает Windows, macOS и Linux, обладает мощными возможностями и гибкой расширяемостью.

Руководство по VS Code:https://www.example.com/vscode/vscode-tutorial.html

URL для скачивания:https://code.visualstudio.com/ 。

Рекомендуется установить следующие расширения:

  • Python (Microsoft)
  • Pylance (Microsoft)
  • FastAPI Snippets

Кроме того, у китайских Alibaba и ByteDance также есть AI IDE, разработанные на основе VS Code:

Создание виртуального окружения

Сначала можно настроить среду разработки Python. Если она уже установлена или настроена, этот шаг можно пропустить.

Установка FastAPI и Uvicorn

pip install fastapi uvicorn

Создание приложения FastAPI

В каталоге fastapi-demo создайтеmain.pyфайл со следующим кодом:

Пример

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, FastAPI!"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = Отсутствует):
    return {"item_id": item_id, "q": q}

Запустите приложение

uvicorn main:app --reload

Описание параметра:

  • mainИмя модуля Python (без .py)
  • app: имя переменной экземпляра FastAPI
  • --reload: Включить автоперезагрузку во время разработки

Доступ к API

  • Откройте браузер и перейдитеhttp://127.0.0.1:8000
  • Интерактивная документация:http://127.0.0.1:8000/docs
  • Альтернативная документация:http://127.0.0.1:8000/redoc

Советы по разработке в VS Code

В VS Code выберите в менюFile > Open Folder…и откройте папку fastapi-demo, которую вы только что создали.

При первом открытии проекта VS Code спросит: «Вы доверяете авторам этой рабочей области?» Выберите «Да, я доверяю авторам», чтобы расширения и ресурсы работали корректно.

Вы также можете использоватьcode ., чтобы открыть команду прямо в каталоге. . Символ . обозначает текущий каталог:
code .

Создайте requirements.txt

Создайте новый файл (File > New Text File или сочетание клавиш⌘N), или можно сразу создать его с помощью значка нового файла справа от имени проекта:

Добавьте следующее содержимое (зависимости проекта):

fastapi
redis
types-redis
uvicorn

Сохраните файл (⌘S) с именем requirements.txt.

Создание виртуального окружения

Создание виртуального окружения

  • Откройте палитру команд (⇧⌘P)

  • Введите и выберите:Python: Create Environment

  • Выберите тип среды:Venv(встроенная виртуальная среда)

  • Выберите версию Python (рекомендуется использовать последнюю версию, установленную на вашем компьютере)

  • Выборrequirements.txtфайл для автоматической установки зависимостей

  • Нажмите Confirm, и система создаст виртуальное окружение и автоматически установит зависимости.

Далее мы можем отредактировать файл main.py:

Пример

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello World"}

Нажмите F5, чтобы запустить отладчик и выполнить код.

В появившемся раскрывающемся меню выберите из списка вариант конфигурации отладки FastAPI:

Эта операция автоматически создаст конфигурацию отладки, которая использует uvicorn для запуска сервера приложения через отладчик и позволяет пошагово выполнять исходный код, чтобы изучить его поведение.

В терминале вы должны увидеть информацию, подобную следующей:

В терминале нажмите Ctrl и щёлкните отображаемый URL-адрес http://127.0.0.1:8000/, чтобы открыть его в браузере:

Если порт по умолчанию уже занят:

  • Остановить отладчик
  • Откройте палитру команд (⇧⌘P), найдите и выберитеDebug: Add Configuration
  • ВыберитеPython Debugger, затем выберитеFastAPI
  • Это будет.vscode/launch.jsonсоздайте в нем пользовательский файл конфигурации
  • В"args":[]В него добавьте следующее содержимое, чтобы задать пользовательский порт:
    "args": ["--port=5000"]

Рекомендации по структуре проекта

Для больших проектов рекомендуется следующая структура:

my_fastapi_project/
├── app/
│   ├── __init__.py
│   ├── main.py         # 应用入口
│   ├── api/            # API路由
│   │   ├── __init__.py
│   │   ├── items.py
│   │   └── users.py
│   ├── models/         # 数据模型
│   │   ├── __init__.py
│   │   └── user.py
│   ├── schemas/        # Pydantic模型
│   │   ├── __init__.py
│   │   └── user.py
│   └── db/             # 数据库相关
│       ├── __init__.py
│       └── session.py
├── tests/              # 测试代码
│   ├── __init__.py
│   └── test_api.py
├── requirements.txt    # 依赖列表
└── .env                # 环境变量

Отладка и тестирование

Отладка FastAPI

В VS Code:

  1. Установите точку останова
  2. Нажмите F5, чтобы начать отладку
  3. Получите доступ к конечной точке API в браузере

Модульное тестирование

Использованиеpytest:

Пример

# test_main.py
from fastapi.testclient import TestClient
from main import app

client = TestClient(app)

def test_read_root():
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"message": "Hello, FastAPI!"}

Запуск тестов:

pytest

Подготовка к развертыванию

Продакшен-сервер

Рекомендуемое использование:

  • Uvicorn + Gunicorn
  • Hypercorn
  • Daphne

Развертывание в Docker

СоздайтеDockerfile:

FROM python:3.9

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]

Сборка и запуск:

docker build -t fastapi-app .
docker run -d -p 80:80 fastapi-app
Другие расширения