跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Python大前端

Python FastAPI 入门实战:从环境搭建到接口开发

FastAPI 是新一代 Python Web 框架,具备高性能、自动文档生成及类型检查特性。本文涵盖环境安装、基础路由定义、参数接收方式(路径与查询)以及 Pydantic 数据模型应用,帮助开发者快速构建规范的 RESTful API。

数字游民发布于 2026/3/22更新于 2026/5/129 浏览
Python FastAPI 入门实战:从环境搭建到接口开发

前言

在 Python Web 开发领域,FastAPI 凭借高性能和类型安全成为新宠。相比 Django 的厚重和 Flask 的灵活,它提供了更现代化的开发体验,特别适合需要快速构建 API 的场景。

一、FastAPI 是什么

在 Python Web 生态中,主要有三个选择:

  1. Django:功能全面但较重,适合大型单体应用。
  2. Flask:轻量灵活,但插件繁多,需自行组装。
  3. FastAPI:新晋顶流,速度快、自动生成文档、利用类型提示减少 Bug。

为什么推荐新手使用?

  • 无需手写文档:代码写完,Swagger UI 文档自动生成。
  • 类型检查:参数传错直接报错,避免运行时崩溃。
  • 简洁高效:Hello World 仅需几行代码。

二、环境搭建

1. 安装依赖

确保 Python 版本为 3.8 及以上。安装 FastAPI 核心库及 ASGI 服务器 Uvicorn:

pip install fastapi uvicorn

2. 运行与启动

新建 main.py 文件,写入以下基础代码:

from fastapi import FastAPI
import uvicorn

# 创建应用实例
app = FastAPI()

# 定义路由
@app.get("/")
def root():
    return {"message": "Hello World"}

# 启动入口
if __name__ == "__main__":
    uvicorn.run(app="main:app", host="127.0.0.1", port=8000)

这里的 main:app 表示运行 main.py 文件中的 app 对象。启动服务后访问 http://127.0.0.1:8000,即可看到返回的 JSON 数据。

三、自动文档功能

这是 FastAPI 最实用的特性之一。无需编写任何文档代码,框架会自动生成交互式接口文档。

启动服务后,访问 http://127.0.0.1:8000/docs,你会看到 Swagger UI 界面。可以直接在网页上点击 Try it out,填写参数并执行测试,极大简化了调试流程。

四、接收数据的方式

后端主要工作是接收前端数据、处理并返回结果。FastAPI 支持多种参数传递方式。

1. 路径参数 (Path Parameters)

场景:查询特定 ID 的资源,如 /student/5。

from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get("/student/{student_id}")
def get_student(student_id: int):
    return {
        "学生 ID": student_id,
        "类型": str(type(student_id))
    }

if __name__ == "__main__":
    uvicorn.run(app="main:app", host="127.0.0.1", port=8088)

注意函数参数中的 student_id: int。如果访问 /student/abc,FastAPI 会直接报错提示类型不匹配,这就是类型检查的优势。

2. 查询参数 (Query Parameters)

场景:类似搜索,如 /search?keyword=python&page=1。

from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get("/search")
def search_data(keyword: str, page: int = 1):
    return {
        "你搜的词": keyword,
        "当前页码": page
    }

if __name__ == "__main__":
    uvicorn.run(app="main:app", host="127.0.0.1", port=8088)

未提供的参数可使用默认值(如 page=1),符合 URL 规范。

五、Pydantic 数据模型

当需要接收复杂结构的数据(如注册信息)时,逐个定义函数参数会很混乱。FastAPI 内置 Pydantic 用于定义数据模型。

from fastapi import FastAPI
import uvicorn
from pydantic import BaseModel

app = FastAPI()

# 定义数据模型
class UserInfo(BaseModel):
    username: str
    password: str
    age: int = 18
    is_student: bool = True

@app.post("/register")
def register(user: UserInfo):
    if user.age < 18:
        return {"message": "未成年人禁止注册", "code": 400}
    return {
        "message": "注册成功",
        "用户": user.username,
        "身份": "学生" if user.is_student else "社会人"
    }

if __name__ == "__main__":
    uvicorn.run(app="main:app", host="127.0.0.1", port=8088)

在接口中使用 UserInfo 作为参数类型,FastAPI 会自动将前端传来的 JSON 解析并校验。若字段缺失或类型错误,框架会直接返回验证失败信息。

六、总结

掌握以上内容,你已经具备了 FastAPI 的基础开发能力:

  1. 安装:使用 pip 安装 fastapi 和 uvicorn。
  2. 启动:通过 uvicorn 运行应用。
  3. 文档:利用 /docs 自动生成接口文档进行测试。
  4. 参数:利用类型提示约束路径和查询参数。
  5. 模型:使用 BaseModel 处理复杂的 POST 数据。

FastAPI 不仅提升了编码效率,更通过类型系统保证了代码的健壮性。后续可结合数据库进一步实现完整的业务逻辑。

目录

  1. 前言
  2. 一、FastAPI 是什么
  3. 二、环境搭建
  4. 1. 安装依赖
  5. 2. 运行与启动
  6. 创建应用实例
  7. 定义路由
  8. 启动入口
  9. 三、自动文档功能
  10. 四、接收数据的方式
  11. 1. 路径参数 (Path Parameters)
  12. 2. 查询参数 (Query Parameters)
  13. 五、Pydantic 数据模型
  14. 定义数据模型
  15. 六、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 马斯克论中美 AI 竞争:电力基础设施成决胜关键
  • 5 款主流 AI 应用开发工具对比与选型建议
  • 基于 Microi 低代码框架构建 Vue 高效应用指南
  • 深入理解 Linux 信号机制:从 task_struct 到信号递达
  • Neo4j Windows 桌面版安装及默认数据存储位置修改
  • AI 辅助开发实战:用 DeepSeek 构建贪吃蛇游戏
  • MySQL 约束详解:非空、主键、外键与自增机制实战
  • OpenClaw 多机器人多 Agent 模式:构建 AI 助手团队
  • Python 内置函数 enumerate() 用法与原理
  • React Native Android UI 性能调试实践
  • ComfyUI_smZNodes 安装指南:实现跨平台 AI 绘画效果一致
  • HuggingFace 本地模型下载与加速指南
  • 零基础转行网络安全就业前景与技能要求分析
  • 前端函数防抖原理与实战实现
  • Microi 吾码开源低代码微服务框架及表单引擎解析
  • GitHub 汉化插件核心技术解析与实现
  • DuckX:C++操作 Word 文档的完整指南
  • 清华智谱团队:6000 亿合成交错语音文本预训练,问答性能提升近 3 倍
  • Java 集成百度地图 API 实现实时路况检索
  • Java 大数据在智能家居设备联动与场景化节能中的应用

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online