第 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
)中打开终端并执行:
venv
的文件夹,其中包含一个独立的 Python 版本。
步骤 2:激活实验室的“力场”
- Windows (PowerShell):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
)
- Windows (CMD):
- macOS / Linux:
(venv)
。这意味着您已进入您的实验室!
3. 安装引擎:FastAPI 和 Uvicorn
现在我们将安装两个关键组件:
- fastapi: 框架本身。
- uvicorn: 闪电般的 ASGI 服务器,它将“启动”我们的引擎。
在已激活的环境中执行:
💡 为什么是
[all]
? 这将安装fastapi
、uvicorn
以及其他有用的包(例如,用于支持 WebSocket 和 Jinja2),这些在未来的任务中会派上用场。
安装验证:
您应该在列表中看到fastapi
、pydantic
、starlette
、uvicorn
及其他包。
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
:启动 Uvicorn 服务器。main
:main.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
。您应该看到:
步骤 2:展望未来(自动文档)
FastAPI 已经为您准备了两份礼物。打开这些 URL:
http://127.0.0.1:8000/docs
:交互式 Swagger UI 文档。http://127.0.0.1:8000/redoc
:替代 ReDoc 文档。
您将看到您的第一个端点,可以直接从浏览器中进行测试!
巩固测验
🚀 本章总结:
您已成功组装并启动了新 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
时出错:请检查脚本执行策略。