FastAPI入门:零基础也能写出后端API
大家好,我是技术团队的培训负责人,过去五年带过上百名应届生入门后端开发。每当看到新人面对“API”“框架”“异步”这些词一脸茫然时,我就想起自己当初学的时候——连 pip install 都输错好几次。今天这篇教程,就是为完全零基础的朋友量身打造的。别担心,我们不用 Go,也不用 ChatGPT 写代码(虽然它们很火),而是用 Python 的 FastAPI,快速搭建一个能跑起来的后端服务。
顺便说一句,最近团队里有个叫 Moltbot 的 AI 工具在测试阶段,还有个叫 Windsurf 的内部项目也在用 FastAPI,所以掌握它,对你未来实习或工作都很有帮助!
什么是 FastAPI?它能做什么?
FastAPI 是一个用 Python 写的后端框架,专门用来创建 API(应用程序接口)。你可以把它理解成“网页后台的快递员”:前端(比如网页或 App)要数据,FastAPI 就去数据库拿,然后打包好送过去。
它的优势非常明显:
- 快:性能接近 Go 语言写的后端
- 自动文档:写完代码,自动生成交互式 API 文档(比手写强十倍!)
- 类型安全:用 Python 的类型提示(Type Hints)减少错误
- 上手简单:几行代码就能启动一个服务
我当初第一次跑通 FastAPI 时,只用了 3 分钟,那种“我居然做出了一个能被浏览器访问的服务!”的成就感,至今难忘。
第一步:搭建开发环境
1. 安装 Python
确保你已安装 Python 3.7 或更高版本。在终端输入:
python --version
# 或
python3 -- version
如果没安装,请去 python.org 下载。
2. 创建虚拟环境(推荐)
虚拟环境能避免不同项目之间的依赖冲突。运行:
python -m venv fastapi_env
激活它:
- Windows:
fastapi_env\Scripts\activate - Mac/Linux:
source fastapi_env/bin/activate
3. 安装 FastAPI 和 Uvicorn
Uvicorn 是一个高性能的服务器,用来运行 FastAPI 应用。
pip install fastapi uvicorn
✅ 小贴士:如果
pip报错,试试pip3;如果网速慢,可加-i https://pypi.tuna.tsinghua.edu.cn/simple使用清华源。
核心概念:用大白话解释
路由(Route)
就像快递地址。比如 /users 表示“用户相关操作”,/items 表示“商品相关操作”。
请求方法(HTTP Method)
GET:获取数据(比如查看商品列表)POST:提交数据(比如创建新用户)PUT/DELETE:更新或删除
响应(Response)
FastAPI 会自动把 Python 字典转成 JSON 格式返回给前端。
自动文档
启动服务后,访问 /docs,你会看到一个超酷的交互式页面,可以在线测试 API!
动手实战:5 分钟做出你的第一个 API
步骤 1:创建 main.py
在任意文件夹下新建 main.py,输入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
return {"message": "Hello, FastAPI 新手!"}
步骤 2:运行服务
在终端执行:
uvicorn main:app --reload
main:app表示从main.py文件中加载app对象--reload表示代码修改后自动重启(开发时超有用!)
你会看到类似输出:
INFO: Uvicorn running on http://127.0.0.1:8000
步骤 3:访问你的 API
打开浏览器,访问:
http://127.0.0.1:8000→ 看到{"message": "Hello, FastAPI 新手!"}http://127.0.0.1:8000/docs→ 看到自动生成的 Swagger 文档!
步骤 4:添加更多功能
让我们模拟一个“获取用户信息”的接口:
from fastapi import FastAPI
app = FastAPI()
# 模拟数据库
fake_users_db = {
1: {"name": "张三", "age": 25},
2: {"name": "李四", "age": 30},
}
@app.get("/user/{user_id}")
def get_user(user_id: int):
return fake_users_db.get(user_id, {"error": "用户不存在"})
现在访问 http://127.0.0.1:8000/user/1,就能看到张三的信息了!
常见问题 & 避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
访问 127.0.0.1:8000 打不开 |
服务没启动或端口被占用 | 检查终端是否运行成功;换端口:uvicorn main:app --port 8080 |
| 修改代码后没生效 | 忘记加 --reload |
重新运行时加上 --reload 参数 |
| 返回中文乱码 | 浏览器编码问题 | 实际 API 返回是正确的,用 Postman 或 curl 测试更准 |
报错 ModuleNotFoundError |
没在虚拟环境中 | 确保已激活虚拟环境,再安装依赖 |
💡 我见过太多新人卡在“为什么改了代码没反应”——记住,一定要加
--reload!
进阶一点:接收前端传来的数据
假设前端要创建一个新用户,用 POST 请求发送数据:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class UserCreate(BaseModel):
name: str
age: int
@app.post("/user/")
def create_user(user: UserCreate):
new_id = max(fake_users_db.keys()) + 1
fake_users_db[new_id] = user.dict()
return {"id": new_id, "message": "用户创建成功"}
现在你可以用 Swagger 文档(/docs)点击 “Try it out” 来测试 POST 请求,输入:
{
"name": "王五",
"age": 28
}
服务会自动校验数据类型,如果 age 填了 "abc",会直接报错!
学习建议:下一步该学什么?
- 数据库连接:学 SQLAlchemy 或 TortoiseORM,把
fake_users_db换成真实数据库 - 用户认证:用 JWT 实现登录功能
- 部署上线:用 Docker 打包,部署到云服务器(如阿里云、Vercel)
- 项目结构:拆分路由、模型、数据库逻辑,避免所有代码塞在
main.py
🚀 小提醒:不要一上来就学“微服务”“分布式”——先把单个 API 写熟,再逐步扩展。我在 Moltbot 项目初期,也是从这样一个小接口开始的。
最后的话
FastAPI 是目前最适合新手的 Python 后端框架。它不像 Django 那么重,也不像 Flask 那样需要手动配置很多东西。你甚至不需要懂 Go 语言(虽然它很快),也不用依赖 ChatGPT 写代码——理解原理,亲手敲一遍,进步最快。
记住:每个大神,都曾是个连 pip install 都打错的新手。你现在迈出的这一步,可能就是未来加入 Windsurf 项目、甚至参与 Moltbot 开发的起点。
动手吧!你的第一个 API,正在等你启动。

评论 0