跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python FastAPI 入门教程:从环境搭建到核心功能

FastAPI 是一款基于 Python 的现代高性能 Web 框架,支持自动生成 API 文档和类型检查。介绍 FastAPI 的基础用法,包括环境安装、服务启动、路径与查询参数处理以及 Pydantic 数据模型的应用。通过示例代码展示如何快速构建 RESTful API,并利用内置的 Swagger UI 进行接口测试,适合初学者快速上手 Python Web 开发。

蜜桃汽水发布于 2026/2/5更新于 2026/10/249K 浏览
Python FastAPI 入门教程:从环境搭建到核心功能

一、FastAPI 简介

在 Python Web 开发领域,FastAPI 是一款新兴的高性能框架。相比 Django 和 Flask,FastAPI 具有代码简洁、自动生成文档(Swagger UI)以及利用类型提示进行参数校验等优势。

主要特点:

  • 自动文档:无需编写额外代码,接口文档自动生成。
  • 减少 Bug:基于 Python 类型提示,参数错误会在启动或请求时直接报错。
  • 简单易用:Hello World 示例仅需少量代码。

二、环境搭建

1. 安装

FastAPI 依赖 Python 3.8 及以上版本。首先安装 FastAPI 模块:

pip install fastapi -i https://mirrors.aliyun.com/pypi/simple/

其次需要安装 ASGI 服务器,生产环境推荐使用 Uvicorn:

pip install "uvicorn[standard]" -i https://mirrors.aliyun.com/pypi/simple/

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 对象。

启动服务有两种方式:

  1. 代码内启动:直接运行上述脚本。
  2. 命令行启动:在终端输入 uvicorn main:app。

启动后访问 http://127.0.0.1:8000,将返回 JSON 数据 {"message": "Hello World"}。

三、自动文档

FastAPI 最显著的功能是自动生成 API 文档。启动服务后,访问 即可看到 Swagger UI 界面。开发者可以直接在网页上点击 填写参数并执行接口测试,无需使用 Postman 等外部工具。

/docs
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,FastAPI 会自动将路径中的字符串转换为整数。如果传入非整数(如 /student/abc),框架会直接报错。

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 表示该参数有默认值。

五、Pydantic 数据模型

当接口需要接收复杂数据(如注册信息)时,建议使用 Pydantic 的 BaseModel 定义数据结构。

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 数据并填充到 user 变量中,同时验证字段类型和必填项。

六、总结

本文介绍了 FastAPI 的基础用法,包括环境安装、服务启动、自动文档生成、路径与查询参数处理以及 Pydantic 数据模型的应用。掌握这些内容后,可以快速构建规范且健壮的 Python Web API。

目录

  1. 一、FastAPI 简介
  2. 二、环境搭建
  3. 1. 安装
  4. 2. 运行与启动
  5. 创建应用实例
  6. 定义路由
  7. 启动入口
  8. 三、自动文档
  9. 四、接收数据
  10. 1. 路径参数 (Path Parameters)
  11. 2. 查询参数 (Query Parameters)
  12. 五、Pydantic 数据模型
  13. 六、总结

更多推荐文章

查看全部
  • TortoiseSVN/TortoiseGit 本地修改文件拉取与更新最佳实践
  • 苹果 macOS 26 Tahoe 内存占用过大问题及解决方案
  • Java 及 Spring 环境下的 Redis 操作实战
  • Docker Hello-World 镜像拉取失败或超时问题排查与解决
  • Vheer:免费不限次的 AI 生图与视频生成工具评测
  • Python 机器学习:基于逻辑回归和决策树的寿险续保预测
  • C语言递归快速排序算法详解
  • Python 集成 RocketMQ 生产消费全流程实战
  • Vercel agent-browser 深度解析:AI 驱动浏览器自动化实践
  • C 语言初阶算法习题实战解析
  • Cursor 中 MCP 服务配置与使用指南
  • 如何在 VS Code 中关闭 GitHub Copilot 功能
  • python-can 模块使用记录
  • NISP 证书含金量深度解析与报考指南
  • 基于 Higress 网关将 REST API 转换为 MCP Server 工具
  • 基于 Netty 的轻量斗地主服务器部署与内网穿透方案
  • OpenClaw 对接飞书机器人:消息无响应与 Gateway 断连排查
  • 《AI 赋能:AI 重新定义产品经理》书籍核心内容梳理
  • Python+AI 入门实战:轻量化开发与大模型微调指南
  • 面向前端开发者的 Claude Code、Codex 与 OpenClaw 共享插件方案

相关免费在线工具

  • 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