FastAPI 入门:Python 后端开发新手指南
一、开篇:FastAPI 是什么?我们为什么要学它?

你可能听说过“网站后端”这个术语,也可能在找工作时见过“后端工程师”这个职位。那么,什么是后端呢?简单来说,后端就是处理网站功能逻辑的那一部分程序。
比如说,当你登录一个网站的时候,输入用户名和密码点击“登录”按钮,这时候浏览器(前端)会把你的信息发给服务器(后端),后端会对这些信息进行验证并返回结果:“登录成功”或“用户名或密码错误”。
而 FastAPI 就是一个帮助我们快速搭建后端服务的 Python 框架。它不仅速度快、易于上手,还自带了非常实用的功能,比如接口文档自动生成!对于刚入门的新手来说,它是一个非常合适的起点。
如果你是零基础的小白,别担心,这篇文章将从头开始带你一步步掌握 FastAPI 的基本用法。
二、环境准备:搭建我们的开发环境

1. 安装 Python
首先确保你的电脑已经安装了 Python 3.8 及以上版本(推荐使用 Python 3.9 或更新版本)。你可以通过以下命令检查是否已安装 Python:
python --version
如果没有安装,可以前往 Python 官网下载安装包。
📌 提示:Windows 用户建议勾选 “Add to PATH” 选项来方便后续操作。
2. 创建项目目录
我们可以先为我们的项目创建一个新的文件夹,比如:
mkdir fastapi_demo
cd fastapi_demo
3. 安装 FastAPI 和 Uvicorn
我们使用 pip 来安装 FastAPI 和运行服务器所需的工具:
pip install fastapi uvicorn
fastapi是框架本身。uvicorn是用来运行 FastAPI 项目的 ASGI 服务器。
安装完成后,我们就可以开始写第一个 FastAPI 程序啦!
三、核心概念:理解 FastAPI 的关键点

为了让你更好地理解和使用 FastAPI,我们先解释几个非常重要的概念。不需要死记硬背,理解它们的作用就可以了。
1. API 是什么?
API(Application Programming Interface) 是一种让两个程序之间通信的规则。你可以把它想象成一个“窗口”,别人可以通过这个窗口向你的程序发送请求,然后得到结果。
举个例子:假设你有一个天气预报程序,别人可以通过调用你的 API 获取某个城市的天气。
2. 路由(Route)
在 FastAPI 中,路由就像是地图上的路线指引。每个 URL 地址都对应着一段代码,当用户访问这个地址时,就会执行相应的代码。
例如:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "你好,欢迎来到首页"}
这段代码中:
@app.get("/")表示这是一个 GET 请求,并且路径是根路径/read_root()函数负责处理这个请求- 返回的内容会被自动转换为 JSON 格式
你可以保存上面代码为 main.py,然后在终端运行:
uvicorn main:app --reload
main表示文件名(不加.py)--reload表示自动刷新服务器(适合开发阶段)
打开浏览器,访问:http://127.0.0.1:8000 就能看到输出内容啦!
3. 参数传递
我们来看两种常见方式:
(1)查询参数 Query Parameters
URL 中可以附加参数信息。例如:
http://example.com/items?name=book&id=1
在 FastAPI 中这样接收:
@app.get("/items")
def read_item(name: str, id: int):
return {"name": name, "id": id}
你可以访问 http://127.0.0.1:8000/items?name=abc&id=123 来测试这个接口。
(2)路径参数 Path Parameters
有时我们会直接把参数放在路径里,比如:
http://example.com/users/123
表示 ID 为 123 的用户信息。
FastAPI 写法如下:
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
注意 {} 这对花括号,它告诉 FastAPI 这是一个变量参数。
4. 请求方法类型
常见的 HTTP 请求方法有:
| 方法 | 含义 |
|---|---|
| GET | 获取数据 |
| POST | 提交数据 |
| PUT | 更新数据 |
| DELETE | 删除数据 |
在 FastAPI 中你可以像这样定义不同方法:
@app.post("/create")
def create_data():
return {"status": "created"}
@app.put("/update")
def update_data():
return {"status": "updated"}
@app.delete("/delete")
def delete_data():
return {"status": "deleted"}
✅ 小结:本节知识点列表
- API 是程序之间的“对话方式”
GET,POST,PUT,DELETE是常用的请求方法- 使用
@app.get("/path")定义路由 - 参数分为查询参数(query)和路径参数(path)
四、实战项目:做一个简单的图书管理系统

我们接下来通过一个小项目——“图书管理系统”来巩固前面所学的知识。
1. 项目目标
我们将实现以下功能:
| 功能 | 接口 |
|---|---|
| 查看所有图书 | GET /books |
| 新增一本图书 | POST /books |
| 查询指定图书 | GET /books/{id} |
2. 项目结构
先创建一个名为 books.py 的文件,在里面写下如下代码:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
# 用于模拟数据库的列表
books_db = []
# 定义图书的数据模型
class Book(BaseModel):
id: int
title: str
author: str
# 获取所有图书
@app.get("/books")
def get_books():
return books_db
# 添加新图书
@app.post("/books")
def add_book(book: Book):
books_db.append(book)
return {"message": "书籍添加成功", "book": book}
# 获取某本书的信息
@app.get("/books/{book_id}")
def get_book(book_id: int):
for book in books_db:
if book.id == book_id:
return book
return {"error": "未找到这本书"}
3. 安装 Pydantic
我们在上面用了 BaseModel,它来自 pydantic 库:
pip install pydantic
💡 Pydantic 可以帮我们自动校验和解析数据格式。
4. 启动服务
运行下面这条命令启动服务器:
uvicorn books:app --reload
浏览器访问:http://127.0.0.1:8000/docs 即可看到自动生成的接口文档界面!
5. 测试接口
进入 Swagger UI 页面(即 /docs 页面),你可以直接测试各个接口:
- 点击
/POST /books-> Try it out -> 输入以下 JSON 数据:
{
"id": 1,
"title": "Python 编程入门",
"author": "张老师"
}
点击 Execute 执行提交。
然后访问 /GET /books 查看所有图书,你应该可以看到刚刚新增的书籍。
再试试访问 /GET /books/1 查看具体的一本书。
✅ 小结:本节知识点列表
- 使用
BaseModel定义请求体格式 - 使用列表模拟数据库存储
- 实现图书的增查接口
- 使用
/docs自带的文档调试接口
五、常见问题解答:新手容易遇到的问题汇总

Q1:报错“No module named 'fastapi'”怎么办?
✅ 解答:说明你还没有正确安装 FastAPI,请运行:
pip install fastapi uvicorn
也可以尝试加上 --user 参数避免权限问题:
pip install --user fastapi uvicorn
Q2:页面打不开或者提示连接失败?
✅ 解答:可能是服务没有启动或者被其他程序占用了端口。
- 确保你在终端执行的是:
uvicorn 文件名:app --reload - 如果出现“Address already in use”错误,可以改端口号:
uvicorn main:app --host 127.0.0.1 --port 8080
Q3:如何退出运行中的 FastAPI 服务?
✅ 解答:在终端按快捷键 Ctrl + C 即可终止当前运行的服务。
Q4:为什么我写的函数不生效?
✅ 解答:检查是否漏掉装饰器(如 @app.get("/xxx")),这是 FastAPI 匹配请求的关键。
六、学习建议:下一步可以怎么学?
恭喜你完成了 FastAPI 的第一次实战!
接下来你可以继续深入以下几个方向:
🔹 建议 1:了解真实数据库操作
目前我们只是用了一个列表来模拟数据库,接下来可以学习如何连接真正的数据库,比如:
- SQLite
- MySQL
- PostgreSQL
推荐库:
SQLAlchemy(Python ORM)Tortoise ORM(更适合异步)
🔹 建议 2:学习 JWT 身份认证
实际项目中常需要用到“登录”的功能,可以进一步学习:
- JWT(Json Web Token)身份验证机制
- 使用中间件保护接口安全
🔹 建议 3:整合前后端
你可以尝试把 FastAPI 做的后端和 Vue.js、React 等前端框架结合起来,完成一个完整的 Web 应用!
🔹 推荐学习顺序清单
- ✅ 已掌握:FastAPI 基础知识 + 接口编写
- 学习连接真实数据库(如 SQL)
- 接口权限管理(JWT 认证)
- 异步支持与性能优化
- 部署上线(比如用 Nginx + Gunicorn)
七、结语:坚持就是胜利!
作为初学者,可能会觉得后端开发门槛高,但只要你愿意动手实践,就能一点点进步。
记住一句话:代码不是写出来的,是跑出来的。
每敲一行代码、每解决一个 bug,你就在离大牛更近一步!
祝你在编程的世界里越走越远!
📌 完整示例源码获取方式
你可以将本文中的代码复制粘贴到自己的编辑器中练习,也可以在 GitHub 上搜索类似项目练习。
有问题欢迎留言或加入交流群组,一起成长!
文章字数统计:约 2825 字
风格:通俗易懂 + 丰富实践 + 结构清晰
适合人群:完全零基础小白

评论 0