Spec-Zone.ru › FastAPI

Учебное руководство — руководство пользователя

В этом руководстве шаг за шагом показано, как использовать FastAPI с большинством его возможностей.

Каждый раздел постепенно развивает предыдущие, но темы в руководстве разделены, чтобы вы могли сразу перейти к нужной и решить конкретную задачу, связанную с вашим API.

Руководство также задумано как справочник, к которому можно будет вернуться и найти именно то, что вам нужно.

Запуск кода

Все блоки кода можно скопировать и использовать напрямую (на самом деле это проверенные файлы Python).

Чтобы запустить любой из примеров, скопируйте код в файл main.py и запустите fastapi dev с помощью uv run:

$ <font color="#4E9A06">uv run fastapi</font> dev

  <span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span>  Starting development server 🚀

             Searching for package file structure from directories
             with <font color="#3465A4">__init__.py</font> files
             Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>

   <span style="background-color:#007166"><font color="#D3D7CF"> module </font></span>  🐍 main.py

     <span style="background-color:#007166"><font color="#D3D7CF"> code </font></span>  Importing the FastAPI app object from the module with
             the following code:

             <u style="text-decoration-style:solid">from </u><u style="text-decoration-style:solid"><b>main</b></u><u style="text-decoration-style:solid"> import </u><u style="text-decoration-style:solid"><b>app</b></u>

      <span style="background-color:#007166"><font color="#D3D7CF"> app </font></span>  Using import string: <font color="#3465A4">main:app</font>

   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Server started at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Documentation at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>

      <span style="background-color:#007166"><font color="#D3D7CF"> tip </font></span>  Running in development mode, for production use:
             <b>fastapi run</b>

             Logs:

     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Will watch for changes in these directories:
             <b>[</b><font color="#4E9A06">&apos;/home/user/code/awesomeapp&apos;</font><b>]</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Uvicorn running on <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font> <b>(</b>Press CTRL+C
             to quit<b>)</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started reloader process <b>[</b><font color="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started server process <b>[</b><font color="#34E2E2"><b>383153</b></font><b>]</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Waiting for application startup.
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Application startup complete.

Настоятельно рекомендуется написать или скопировать код, отредактировать его и запустить локально.

Именно при работе в редакторе вы по-настоящему оцените преимущества FastAPI: насколько мало кода нужно писать, а также проверки типов, автодополнение и многое другое.


Установка FastAPI

Первый шаг — настроить проект и добавить FastAPI.

Установите uv, затем создайте проект и добавьте FastAPI:

$ uv init awesome-project --bare
$ cd awesome-project
$ uv add "fastapi[standard]"

---> 100%

uv add создаёт виртуальную среду проекта в .venv, добавляет FastAPI в pyproject.toml и создаёт uv.lock, чтобы позднее можно было установить те же версии пакетов.

Что делают эти команды
  • uv init: создать новый проект Python.
  • awesome-project: создать проект в новом каталоге с этим именем.
  • --bare: создать только минимальный файл pyproject.toml, не создавая пример main.py, README.md или другие файлы. Файлы приложения вы создадите самостоятельно на следующих шагах этого руководства.

Затем cd awesome-project переходит в каталог нового проекта, прежде чем добавлять FastAPI.

uv использует совместимую версию Python, уже установленную в вашей системе, или при необходимости загружает её.

При запуске uv add выбирает совместимые версии FastAPI и всех пакетов, от которых зависит FastAPI. Точные версии записываются в uv.lock, поэтому позднее те же версии пакетов можно установить на другом компьютере или при развёртывании приложения.

Создание или обновление этого файла называется фиксацией зависимостей проекта. uv выполняет это автоматически при добавлении пакета.

Варианты установки FastAPI

При установке с помощью uv add "fastapi[standard]" добавляются некоторые стандартные необязательные зависимости, в том числе fastapi-cloud-cli, которая позволяет выполнять развёртывание в FastAPI Cloud.

Если вам не нужны эти необязательные зависимости, вместо этого можно установить uv add fastapi.

Если вы хотите установить стандартные зависимости, но без fastapi-cloud-cli, используйте uv add "fastapi[standard-no-fastapi-cloud-cli]".

Вместо этого используйте pip

Если вы предпочитаете вручную управлять виртуальной средой и пакетами, создайте и активируйте виртуальную среду, а затем установите FastAPI с помощью pip install "fastapi[standard]".

Подробные инструкции приведены в руководстве по виртуальным средам.

Навыки для ИИ-агентов

FastAPI включает официальный навык для ИИ-агентов, помогающих писать код. Он входит в пакет, поэтому рекомендации соответствуют установленной в вашем проекте версии FastAPI и обновляются вместе с ней.

После установки FastAPI в проект можно установить навык с помощью Library Skills:

uvx library-skills

Примечание

uvx — это псевдоним для uv tool run. Он запускает Library Skills во временной изолированной среде, пока Library Skills сканирует пакеты, установленные в вашем проекте.

Навык совместим с Codex, Claude Code, Cursor, GitHub Copilot, Gemini CLI, Pi, OpenCode и большинством других агентов для написания кода. В Claude Code при запросе места установки навыка выберите .claude/skills.

Расширенное руководство

После этого учебного руководства — руководства пользователя вы также можете прочитать расширенное руководство.

Расширенное руководство развивает материал этого руководства, использует те же понятия и знакомит с дополнительными возможностями.

Но сначала прочитайте учебное руководство — руководство пользователя (то, что вы читаете прямо сейчас).

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

© 2018 Sebastián Ramírez
Licensed under the MIT License.
https://fastapi.tiangolo.com/tutorial/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API