FastAPI - 介绍
FastAPI 是一个现代的 Python web 框架,在构建 API 时非常高效。它基于 Python 3.6 及更高版本中添加的类型提示特性。它是 Python 中最快的 web 框架之一。
由于它基于 Starlette 和 Pydantic 库的功能,其性能处于最佳水平,与 NodeJS 和 Go 相当。
除了提供高性能外,FastAPI 还为开发提供了显著的速度优势,减少了代码中人为错误,易于学习,并且完全生产就绪。
FastAPI 完全兼容著名的 API 标准,即 OpenAPI 和 JSON Schema。
FastAPI 由 Sebastian Ramirez 于 2018 年 12 月开发。FastAPI 0.127.0 是当前可用版本。
FastAPI 环境设置
要安装 FastAPI(建议在虚拟环境中安装),使用 pip3 安装器。
pip3 install fastapi Collecting fastapi Downloading fastapi-0.127.0-py3-none-any.whl.metadata (30 kB) Collecting starlette<0.51.0,>=0.40.0 (from fastapi) Downloading starlette-0.50.0-py3-none-any.whl.metadata (6.3 kB) Collecting pydantic>=2.7.0 (from fastapi) Downloading pydantic-2.12.5-py3-none-any.whl.metadata (90 kB) Collecting typing-extensions>=4.8.0 (from fastapi) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting annotated-doc>=0.0.2 (from fastapi) Downloading annotated_doc-0.0.4-py3-none-any.whl.metadata (6.6 kB) Collecting anyio<5,>=3.6.2 (from starlette<0.51.0,>=0.40.0->fastapi) Downloading anyio-4.12.0-py3-none-any.whl.metadata (4.3 kB) Requirement already satisfied: idna>=2.8 in d:\projects\python\myenv\lib\site-packages (from anyio<5,>=3.6.2->starlette<0.51.0,>=0.40.0->fastapi) (3.11) Collecting annotated-types>=0.6.0 (from pydantic>=2.7.0->fastapi) Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB) Collecting pydantic-core==2.41.5 (from pydantic>=2.7.0->fastapi) Downloading pydantic_core-2.41.5-cp314-cp314-win_amd64.whl.metadata (7.4 kB) Collecting typing-inspection>=0.4.2 (from pydantic>=2.7.0->fastapi) Downloading typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB) Downloading fastapi-0.127.0-py3-none-any.whl (112 kB) Downloading starlette-0.50.0-py3-none-any.whl (74 kB) Downloading anyio-4.12.0-py3-none-any.whl (113 kB) Downloading annotated_doc-0.0.4-py3-none-any.whl (5.3 kB) Downloading pydantic-2.12.5-py3-none-any.whl (463 kB) Downloading pydantic_core-2.41.5-cp314-cp314-win_amd64.whl (2.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 6.1 MB/s 0:00:00 Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading typing_inspection-0.4.2-py3-none-any.whl (14 kB) Installing collected packages: typing-extensions, anyio, annotated-types, annotated-doc, typing-inspection, starlette, pydantic-core, pydantic, fastapi Successfully installed annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.12.0 fastapi-0.127.0 pydantic-2.12.5 pydantic-core-2.41.5 starlette-0.50.0 typing-extensions-4.15.0 typing-inspection-0.4.2
FastAPI 依赖于 Starlette 和 Pydantic 库,因此它们也会被安装。
使用 PIP 安装 Uvicorn
FastAPI 没有内置服务器应用。要运行 FastAPI 应用,你需要一个名为 uvicorn 的 ASGI server,因此也使用 pip3 安装它。它还会安装 uvicorn 的依赖项 - asgiref、click、h11 和 typing-extensions。
pip3 install uvicorn Collecting uvicorn Downloading uvicorn-0.40.0-py3-none-any.whl.metadata (6.7 kB) Collecting click>=7.0 (from uvicorn) Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting colorama (from click>=7.0->uvicorn) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Downloading uvicorn-0.40.0-py3-none-any.whl (68 kB) Downloading click-8.3.1-py3-none-any.whl (108 kB) Downloading h11-0.16.0-py3-none-any.whl (37 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Installing collected packages: h11, colorama, click, uvicorn Successfully installed click-8.3.1 colorama-0.4.6 h11-0.16.0 uvicorn-0.40.0
安装这两个库后,我们可以查看迄今为止安装的所有库。
pip3 freeze annotated-doc==0.0.4 annotated-types==0.7.0 anyio==4.12.0 asgiref==3.11.0 certifi==2025.11.12 cffi==2.0.0 charset-normalizer==3.4.4 click==8.3.1 colorama==0.4.6 crypto==1.4.1 cryptography==46.0.3 Django==6.0 django-embed-video==1.4.10 easy-thumbnails==2.10.1 fastapi==0.127.0 h11==0.16.0 idna==3.11 Naked==0.1.32 onetimepad==1.4 paperclip==2.7.4 pillow==12.0.0 pycparser==2.23 pycryptodome==3.23.0 pydantic==2.12.5 pydantic_core==2.41.5 pyDes==2.0.1 pyperclip==1.11.0 python-magic==0.4.27 PyYAML==6.0.3 requests==2.32.5 shellescape==3.8.1 sqlparse==0.5.5 starlette==0.50.0 typing-inspection==0.4.2 typing_extensions==4.15.0 tzdata==2025.3 urllib3==2.6.2 uvicorn==0.40.0