FastAPI入门:Python后端开发新手指南
开篇:什么是FastAPI?它能做什么?

你可能听说过“后端开发”这个词,但还不太清楚它是干什么的。简单来说,后端开发就是搭建一个网站背后的“大脑”。而我们今天要学的 FastAPI,就是一个非常方便的工具,可以帮助你用 Python 快速写出这个“大脑”。
🔍 FastAPI 是什么?
FastAPI 是一个基于 Python 的 Web 框架,专门用来快速构建 API(Application Programming Interface)。你可以把它想象成一座桥,让不同的软件或前端网页可以和你的服务器进行沟通。
💡 它的特点是:
- 速度快
- 自动生成功能说明文档(Swagger 和 ReDoc)
- 易于使用、适合初学者
- 支持现代 Python 特性(比如异步)
🎯 你能用它做什么?
- 构建 RESTful API 接口
- 提供数据给前端页面或者移动端 App 使用
- 做后台服务处理逻辑,比如用户注册、登录、商品管理等等
环境准备:搭建你的第一个 FastAPI 开发环境

在开始写代码之前,我们需要准备好一些“工具”。别担心,它们都是免费的!
第一步:安装 Python(3.8 及以上)
如果你还没安装 Python,请到官网下载并安装最新版本: 🔗 https://www.python.org/downloads/
安装完成后,在命令行中输入:
python --version
你应该看到类似 Python 3.10.4 的信息。
第二步:安装 FastAPI 和 uvicorn
我们使用 pip 来安装依赖库:
pip install fastapi uvicorn
解释一下这两个库的作用:
| 库名 | 功能说明 |
|---|---|
fastapi |
构建 API 的核心框架 |
uvicorn |
运行 FastAPI 的服务器组件 |
第三步:新建项目文件夹和主程序
创建一个新文件夹,比如叫 my_first_fastapi_project,在这个文件夹里创建一个文件 main.py,内容如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "欢迎来到我的第一个 FastAPI 程序!"}
保存好之后,回到命令行运行:
uvicorn main:app --reload
访问地址:http://localhost:8000,你会看到:
{
"message": "欢迎来到我的第一个 FastAPI 程序!"
}
🎉 恭喜你,已经成功启动了一个 FastAPI 服务!
核心概念讲解:零基础也能懂

为了让你更轻松地理解 FastAPI,我来用通俗语言解释几个关键概念。
1. 什么是 API?
👉 API 就是 “接口”,就像自动贩卖机一样——你投币(请求),它出饮料(返回数据)。
在 FastAPI 中,我们主要编写的是 HTTP 请求处理函数,最常见的几种请求方式有:
| 方法名 | 描述 | 对应场景 |
|---|---|---|
| GET | 获取数据 | 查询商品列表 |
| POST | 提交新数据 | 注册、上传文件 |
| PUT | 更新已有数据 | 修改用户名 |
| DELETE | 删除数据 | 删除某个用户 |
2. 路由 (Route) 是什么?
路由就像是地图上的路线标记。例如,我们在上面的例子中用了 / 这个路径:
@app.get("/")
def read_root():
return {"message": "你好,世界!"}
这表示当用户访问 http://localhost:8000/ 时,会执行这个函数。
你可以定义更多路径,比如:
@app.get("/hello")
def say_hello():
return {"greeting": "Hello there!"}
访问 http://localhost:8000/hello 就能看到效果了。
3. 参数与查询字符串
很多时候你需要接收用户传来的信息,比如搜索词、用户ID等。
示例:路径参数
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"id": user_id, "name": f"用户 {user_id}"}
访问:http://localhost:8000/users/5
返回:
{"id":5,"name":"用户 5"}
示例:查询参数(Query Parameter)
@app.get("/search")
def search(q: str, limit: int = 5):
return {"keyword": q, "limit": limit}
访问:http://localhost:8000/search?q=book&limit=10
4. 自动文档生成:Swagger UI 和 ReDoc
FastAPI 最酷的一点是,它自动生成了两个在线接口文档界面:
- 🧪 Swagger UI: 默认地址 http://localhost:8000/docs
- 📄 ReDoc: 默认地址 http://localhost:8000/redoc
你可以在这里测试每一个 API,还能看到详细的接口说明。
实战项目:做一个简易的“待办事项”管理系统
我们现在来做一个简单的项目 —— 待办事项系统(To-Do List)。
目标功能:
- 添加任务 ✅
- 查看所有任务 📋
- 删除某条任务 ❌
Step 1:初始化项目结构
确保你已经有了 main.py,我们继续修改它。
Step 2:定义模型(Model)
为了让我们的程序更规范,我们用 pydantic 定义一个数据模型:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
# 定义数据结构
class TaskCreate(BaseModel):
title: str
description: str
class Task(TaskCreate):
id: int
# 模拟数据库
tasks = []
next_id = 1
Step 3:添加任务(POST)
@app.post("/tasks/", response_model=Task)
def create_task(task: TaskCreate):
global next_id
new_task = Task(**task.dict(), id=next_id)
tasks.append(new_task)
next_id += 1
return new_task
现在可以用 Postman 或者 Swagger 测试 POST 请求了。
示例请求体:
{
"title": "学习 FastAPI",
"description": "完成这篇教程"
}
Step 4:查看所有任务(GET)
@app.get("/tasks/", response_model=List[Task])
def get_tasks():
return tasks
访问 http://localhost:8000/tasks,就能看到你添加的任务啦!
Step 5:删除任务(DELETE)
@app.delete("/tasks/{task_id}")
def delete_task(task_id: int):
for i, task in enumerate(tasks):
if task.id == task_id:
del tasks[i]
return {"status": "删除成功"}
return {"error": "任务不存在"}
试试访问 http://localhost:8000/tasks/1 删除 ID 为 1 的任务。
🎉 到这里,你已经完成了一个基础的 CRUD 接口系统了!
常见问题解答 💡

Q1:为什么 FastAPI 要配合 uvicorn 启动?
A:因为 uvicorn 是一个支持 ASGI 协议的服务器引擎,可以让 FastAPI 支持异步处理请求,速度更快!
Q2:运行时报错说找不到模块怎么办?
A:请检查是否漏装了某些包,常见问题可能是没有安装 uvicorn 或 pydantic,使用 pip install uvicorn pydantic 安装即可。
Q3:如何让服务器自动重启?
A:使用 --reload 参数即可实现热更新,比如:
uvicorn main:app --reload
Q4:我可以把接口部署上线吗?
A:当然可以!后续你可以将 FastAPI 部署在 Nginx + Gunicorn/Uvicorn 上,甚至用 Docker 打包发布。
学习建议:下一步该学什么?

恭喜你完成了第一篇 FastAPI 入门文章!接下来你可以继续深入学习以下方向:
- 数据库集成(如 SQLite / PostgreSQL / MySQL + SQLAlchemy)
- 用户认证与 JWT(安全控制)
- 异步编程知识(async / await)
- 使用 ORM 工具(如 Tortoise ORM、SQLAlchemy)
- 部署实战(Docker、Gunicorn、Nginx 等)
- 前后端联调技巧(配合 Vue.js / React)
📌 建议资源:
- 👉 官方文档(英文):https://fastapi.tiangolo.com/
- 👉 中文社区推荐:掘金、知乎专栏、B站教学视频
- 👉 练习平台:LeetCode、HackerRank(部分题目可用 FastAPI 实现)
总结
这篇文章带你从零开始接触 FastAPI,并通过一个小项目掌握了基本操作。记住一句话:
FastAPI 不只是框架,更是通往全栈开发的第一扇门。
只要你愿意持续学习,未来就能用它做出令人惊叹的后端服务!
喜欢本文的朋友记得点赞+收藏哦!后续还有系列进阶篇等着你~

评论 0