Skip to content

第 3.1 章:安装 FastAPI 并配置环境

学习时间: 45 分钟


1. 什么是 FastAPI?API 的超光速引擎

如果 Flask 是灵活的侦察探测器,Django 是巨大的航母,那么 FastAPI 就是超光速战斗机

FastAPI 是一个现代、高性能的 Web 框架,用于使用 Python 3.7+ 构建 API。它的主要优势包括:

  • 速度: Python 中最快的框架之一,可与 NodeJS 和 Go 媲美。
  • 简洁: 极简且直观的语法。
  • 自动文档: 自动为您的 API 生成交互式文档。
  • 类型化: 利用 Python 标准类型提示进行数据验证、自动补全和文档生成。

💡 宇宙类比:

FastAPI — 就像您 API 飞船的“超光速引擎”。它基于两种技术:

  • Starlette(战斗机底盘)—— 提供异步和卓越的性能。
  • Pydantic(机载计算机)—— 负责数据验证和配置。

2. 准备发射台:虚拟环境

在建造我们的战斗机之前,需要创建一个无菌组装实验室。在 Python 中,这通过虚拟环境实现。

为什么需要它? 为了确保我们项目的依赖项(引擎、导航系统)不会与您计算机上的其他项目冲突。

步骤 1:创建虚拟环境 在您的项目文件夹(例如 C:\Projects\FastAPI_Fleet)中打开终端并执行:

python -m venv venv
此命令将创建一个名为 venv 的文件夹,其中包含一个独立的 Python 版本。

步骤 2:激活实验室的“力场”

  • Windows (PowerShell):

.\venv\Scripts\Activate.ps1
(如果出现错误,可能需要允许执行脚本:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

  • Windows (CMD):
.\venv\Scripts\activate.bat
  • macOS / Linux:

source venv/bin/activate
激活后,终端行首将出现 (venv)。这意味着您已进入您的实验室!


3. 安装引擎:FastAPI 和 Uvicorn

现在我们将安装两个关键组件:

  • fastapi: 框架本身。
  • uvicorn: 闪电般的 ASGI 服务器,它将“启动”我们的引擎。

在已激活的环境中执行:

pip install "fastapi[all]"

💡 为什么是 [all] 这将安装 fastapiuvicorn 以及其他有用的包(例如,用于支持 WebSocket 和 Jinja2),这些在未来的任务中会派上用场。

安装验证:

pip freeze
您应该在列表中看到 fastapipydanticstarletteuvicorn 及其他包。


4. 首次接触:main.py 文件

在项目根目录创建 main.py 文件——这将是我们 API 的中央控制台

main.py 中添加以下代码:

from fastapi import FastAPI

# 创建我们 API “宇宙飞船”的实例
app = FastAPI()

# 定义第一个“停靠节点”(endpoint)
# 这是根 URL:/
@app.get("/")
def read_root():
    """
    这是飞控中心的消息,所有连接到主网关的用户都能看到。
    """
    return {"message": "欢迎来到宇宙舰队控制中心!"}
- @app.get("/"):这是一个装饰器,它告诉 FastAPI,read_root 函数应该处理根 URL (/) 上的 GET 请求。


5. 点火!启动服务器

是时候启动我们的超光速引擎了!在终端(已激活 venv)中执行:

uvicorn main:app --reload
命令解析:

  • uvicorn:启动 Uvicorn 服务器。
  • mainmain.py 文件(不带 .py)。
  • app:在 main.py 中创建的 app = FastAPI() 对象。
  • --reload:“自动驾驶”。服务器将在每次代码更改时自动重启。

终端预期输出:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [12345]
INFO:     Started server process [12346]
INFO:     Waiting for application startup.
INFO:     Application startup complete.


6. 与飞控中心建立连接

您的 API 现已上线并监听 8000 端口!

步骤 1:在浏览器中检查

在浏览器中打开地址 http://127.0.0.1:8000。您应该看到:

{
  "message": "欢迎来到宇宙舰队控制中心!"
}

步骤 2:展望未来(自动文档)

FastAPI 已经为您准备了两份礼物。打开这些 URL:

  • http://127.0.0.1:8000/docs:交互式 Swagger UI 文档。
  • http://127.0.0.1:8000/redoc:替代 ReDoc 文档。

您将看到您的第一个端点,可以直接从浏览器中进行测试!


巩固测验

1. FastAPI 以其...而闻名

2. 为什么需要虚拟环境 (`venv`)?

3. 本课程中用于运行 FastAPI 的服务器是什么?

4. 命令 `uvicorn main:app --reload` 意味着:

5. FastAPI 中的装饰器 `@app.get("/")` 是做什么的?


🚀 本章总结:

您已成功组装并启动了新 API 的“超光速引擎”!现在您拥有:

  • 🛠️ 独立的开发环境 (venv)
  • 🚀 已安装 FastAPI 和 Uvicorn 服务器
  • 🛰️ 具有一个端点的正常运行的 API
  • 📊 自动生成的文档

所有系统正常! 在下一章中,我们将创建第一个完整的端点,它将返回一个航天器列表。

📌 检查:

  • 终端中已激活环境 (venv)
  • Uvicorn 服务器已无错误启动
  • 地址 http://127.0.0.1:8000/docs 可以在浏览器中打开

⚠️ 如果出现错误:

  • command not found:请确保您已激活虚拟环境。
  • Port ... is already in use:其他程序占用了 8000 端口。请停止它或在其他端口上运行 uvicorn:uvicorn main:app --reload --port 8001
  • 在 PowerShell 中激活 venv 时出错:请检查脚本执行策略。