前言

如果你已经掌握了 Python 基础知识,下一步可能想学学怎么做网站后端。在众多 Python Web 框架中,FastAPI 凭借其现代、快速、高性能的特点,正迅速成为开发者的新宠。它基于标准 Python 类型提示构建 API 接口,既轻量又强大。

本文会用通俗的语言,带你理解 Web 的基本运行原理,然后手把手教你搭建一个最简单的 FastAPI 服务,并解释背后的核心概念。无论你是前端想转全栈,还是纯后端新手,这篇文章都能帮你迈出坚实的第一步。

💬 先来聊聊:你之前听说过或使用过哪些 Web 框架?Django?Flask?还是别人推荐了 FastAPI?在评论区说说你的背景,看看有多少小伙伴和你一样刚入门。

一、网站是怎么跑起来的?前端、后端、数据库

一个完整的网站通常由三个核心部分组成:

  • 前端:负责界面展示,就是你看到的精美页面、动画效果。比如购物网站的首页、商品列表。
  • 后端(服务端):负责业务逻辑处理,比如用户登录验证、搜索商品算法、下单扣库存等后端逻辑。
  • 数据库:负责数据存储和管理,比如用户信息、商品信息、订单记录等。

一次搜索请求的完整旅行:

  1. 你在搜索框输入“蓝牙耳机”,点击搜索。
  2. 前端把一个 HTTP 请求发送给后端,说“用户想搜蓝牙耳机”。
  3. 后端收到请求后,进行业务处理(比如分词、过滤、排序),然后去数据库查询相关商品。
  4. 数据库把查到的数据返回给后端。
  5. 后端把这些数据整理成 JSON 格式,返回给前端。
  6. 前端收到数据后,把它们渲染成漂亮的商品列表。

🧠 联想一下:餐厅里,你是顾客(前端),服务员(后端)接受你的点单(请求),去后厨(数据库)出菜,再把菜端给你。这个比喻是否让你更容易理解?

二、认识 FastAPI 和 API 接口

API(Application Programming Interface)就是应用程序编程接口,可以理解为对外开放的功能入口。比如你调用手机上的天气预报功能,实际就是调用了一个天气 API 接口,它返回未来几天的天气数据。

FastAPI 就是专门用来快速构建这种 API 的 Python Web 框架。它的特点:

  • :性能可与 NodeJS 和 Go 相媲美。
  • 简洁:利用 Python 类型提示,自动生成交互式 API 文档。
  • 标准:基于 OpenAPI 和 JSON Schema。

三、FastAPI 开发四大流程

从零构建一个 FastAPI 服务,只需4步:

  1. 导入 FastAPI
  2. 创建 FastAPI 实例对象
  3. 创建路径操作函数并定义访问路径
  4. 运行 FastAPI 服务

下面我们一步一步写代码。

第一步:导入 FastAPI

首先确保你已经安装了 FastAPI 和 uvicorn(高性能服务器):

pip install fastapi uvicorn

然后在你的 Python 文件中导入:

from fastapi import FastAPI

第二步:创建应用实例

app = FastAPI()

这里的 app 就是整个 web 应用的核心对象,后面所有功能都挂在它上面。

第三步:定义访问路径和接口

这一步最关键,我们用装饰器来指定请求方式和 URL 路径,然后编写对应的处理函数。

示例:创建两个最简单的接口

# 访问根路径,返回欢迎信息
@app.get("/")
def begin():
    return {"message": "Hello World"}

# 访问 /users 路径,返回用户列表
@app.get("/users")
def get_users():
    return [
        {"id": 1, "name": "Alice", "age": 18},
        {"id": 2, "name": "Bob", "age": 20}
    ]

代码解析:

  • @app.get("/") 是一个装饰器,它告诉 FastAPI:当通过 GET 方式访问根路径 / 时,调用下面的 begin 函数。
  • 函数可以返回 Python 字典或列表,FastAPI 会自动转换成 JSON 格式响应给前端。

常见的请求方式:RESTful 风格

在企业开发中,通常遵循 RESTful 风格,把增删改查操作映射到不同的 HTTP 请求方法:

操作 请求方式 示例路径 说明
新增 POST /users 创建一个新用户
删除 DELETE /users/1 删除 ID 为 1 的用户
修改 PUT /users/1 更新 ID 为 1 的用户
查询 GET /users/users/1 获取用户列表或单个用户

你可以在 @app. 后面换成 postdeleteput 来定义对应接口。

第四步:运行服务

有三种方法可以启动 FastAPI 服务,重点记最常用的第三种即可。

方法一:fastapi 命令行(开发模式)

cd 你的项目目录
fastapi dev main.py

方法二:uvicorn 命令行

uvicorn main:app --reload

这里的 main 指代你的 Python 文件名(不含 .py),app 是文件里的 FastAPI 实例名。--reload 表示代码修改后自动重启,适合开发调试。

方法三:在代码中启动(最常用)

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
  • host="0.0.0.0":允许从任意 IP 访问该服务(如果只想本机访问,可以用 "127.0.0.1")。
  • port=8000:监听的端口号,可以自行修改。

然后直接运行这个 Python 文件,服务就起来了!

打开浏览器访问 http://127.0.0.1:8000,你应该能看到 {"message": "Hello World"};访问 http://127.0.0.1:8000/users,就会看到用户列表的 JSON 数据。

🧪 动手挑战:按照上面的步骤,在你自己的电脑上跑起来第一个 FastAPI 服务。然后试着添加一个你自己的接口,比如 /happy,返回 {"feeling": "😊"}。成功了吗?把接口路径和返回截图发在评论区,我们互相点赞!

四、Uvicorn 是什么?

在启动输出中你会看到“Uvicorn running on …”。uvicorn 是一个基于 asyncio 的高性能 ASGI 服务器,专为现代异步 Python Web 框架(如 FastAPI、Starlette)设计。你可以把它理解为 FastAPI 的“发动机”,负责接收网络请求并把它们转给 FastAPI 处理。

简单了解就行,日常开发用 uvicorn.run(app, ...) 就足够了。

五、总结与回顾

构建一个 FastAPI 服务的四步口诀:

  1. 导入 FastAPI
  2. 创建 应用实例
  3. 定义 路由和函数
  4. 运行 服务

今天我们还学到了:

  • 网站由前端、后端、数据库组成,前端请求 → 后端处理 → 数据库存取 → 返回前端。
  • API 是应用程序之间的功能入口。
  • RESTful 风格用 GET/POST/PUT/DELETE 对应增删改查。
  • uvicorn 是高性能服务器,帮我们跑 FastAPI。

🎤 结课小调查:学完本文,你觉得最难上手的地方是哪个?
A. 理解前端/后端/数据库的协作
B. 各种请求方式 (GET/POST/PUT/DELETE)
C. 路径装饰器和函数的写法
D. 服务的启动与端口配置

在评论区留下你的选项,我会根据大家的反馈,出后续的深度讲解或实战案例!也欢迎提问你在搭建过程中遇到的具体问题。


本文为 FastAPI 入门理论授课整理,后续将推出更多进阶内容。如果觉得有帮助,欢迎点赞、收藏、关注,你的支持是我最大的动力!

更多推荐