FastAPI 入门:零基础也能写出 Python 后端接口
大家好,我是一名从培训班出来的前端开发,但因为在工作中经常需要和后端同事对接接口,自己也慢慢学起了后端知识。后来我发现,其实很多像我一样的新手,只要有一个清晰、简单的入门引导,完全可以在几天内上手写自己的后端服务。
今天这篇教程,就是我当初自学 FastAPI 时最希望看到的那种——没有复杂术语,全是实操代码,每一步都写得清清楚楚。如果你是完全零基础的小白,甚至没写过一行 Python,别担心,我会带你从安装开始,一步步做出一个能跑起来的“产品”。
为什么选 FastAPI?它到底是什么?
FastAPI 是一个用 Python 写的后端框架,用来快速开发 Web API(也就是别人能通过网络调用的接口)。比如你手机 App 点个按钮,背后可能就调用了某个 FastAPI 接口来获取数据。
你可能会问:“不是有 Java 吗?为啥不用?”
确实,Java 在企业级项目中很常见,但它配置复杂、学习曲线陡峭。而 FastAPI 简单、快、自带文档,特别适合新手做小项目、练手、甚至上线轻量级产品。
我当初学的时候,用 Java 写个 “Hello World” 接口要配半天 Maven 和 Tomcat,而 FastAPI 只需 3 行代码就能跑起来!
第一步:准备好你的开发“工具箱”
在开始写代码前,我们需要装几个基础工具:
| 工具 | 作用 | 安装建议 |
|---|---|---|
| Python 3.7+ | FastAPI 的运行环境 | 去 python.org 下载最新版 |
| pip | Python 的包管理工具 | 安装 Python 时会自动带 |
| VS Code(或其他编辑器) | 写代码的地方 | 推荐 VS Code + Python 插件 |
安装步骤(以 Windows 为例):
- 下载并安装 Python(记得勾选 “Add to PATH”)
- 打开命令行(Win+R 输入
cmd),输入:
如果显示版本号(如python --versionPython 3.11.5),说明装好了。 - 创建一个项目文件夹,比如叫
my-fastapi-app - 进入该文件夹:
cd my-fastapi-app
✅ 小贴士:建议使用虚拟环境,避免包冲突。运行以下命令创建:
python -m venv venv venv\Scripts\activate # Windows source venv/bin/activate # Mac/Linux
第二步:安装 FastAPI 和运行服务器
在项目目录下,执行:
pip install fastapi uvicorn
fastapi:核心框架uvicorn:一个超快的服务器,用来运行你的 FastAPI 应用
接着,新建一个文件 main.py,输入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
return {"message": "Hello, 新手开发者!"}
保存后,在命令行运行:
uvicorn main:app --reload
main:app表示:从main.py文件里找名叫app的对象--reload表示:代码一改,服务器自动重启(开发时超方便!)
打开浏览器,访问 http://127.0.0.1:8000,你会看到:
{"message": "Hello, 新手开发者!"}
恭喜!你的第一个后端接口诞生了!
第三步:理解核心概念(用大白话讲)
1. 路由(Route)
就是 URL 路径。比如 /users、/products。
你在 @app.get("/") 里写的 / 就是一个路由。
2. 请求方法(GET / POST)
GET:获取数据(比如查用户信息)POST:提交数据(比如注册新用户)
FastAPI 支持所有 HTTP 方法:
@app.get("/") # 获取
@app.post("/") # 提交
@app.put("/") # 更新
@app.delete("/") # 删除
3. 返回值
函数返回什么,接口就返回什么。FastAPI 会自动转成 JSON。
4. 自动文档(超实用!)
访问 http://127.0.0.1:8000/docs,你会看到一个交互式文档页面!
这是 FastAPI 自动生成的,你可以直接在网页上测试接口,不用装 Postman!
我当初第一次看到这个功能,惊呆了——Java 项目要实现类似效果,得额外集成 Swagger,还要配一堆注解!
第四步:动手做一个小“产品”——待办事项列表
现在,我们来做一个极简的待办事项(Todo)应用,包含两个功能:
- 查看所有任务(GET)
- 添加新任务(POST)
1. 准备数据(先用内存存,不连数据库)
# main.py
from fastapi import FastAPI
app = FastAPI()
# 模拟数据库(实际项目会用 SQLite 或 MySQL)
todos = [
{"id": 1, "task": "学习 FastAPI"},
{"id": 2, "task": "写第一个接口"},
]
# 获取所有任务
@app.get("/todos")
def get_todos():
return todos
# 添加新任务
@app.post("/todos")
def add_todo(task: str):
new_id = max(t["id"] for t in todos) + 1 if todos else 1
todos.append({"id": new_id, "task": task})
return {"message": "任务已添加", "id": new_id}
2. 测试接口
- 访问
http://127.0.0.1:8000/todos→ 看到任务列表 - 访问
http://127.0.0.1:8000/docs→ 在文档页面点 “Try it out”- 在 POST
/todos的task输入框填 “部署到服务器” - 点击 “Execute”,看到返回成功!
- 在 POST
💡 注意:这里
task: str是 FastAPI 的类型提示,它会自动校验传入参数是不是字符串。如果不是,会直接返回错误,不用你手动判断!
新手常踩的坑 & 解决方案
| 问题 | 原因 | 解决办法 |
|---|---|---|
访问不了 localhost:8000 |
服务器没启动或端口被占 | 检查命令是否运行,换端口:--port 8080 |
| 修改代码没生效 | 忘了加 --reload |
确保启动命令带 --reload |
| POST 参数传不进去 | 没用 JSON 格式 | 在 /docs 页面测试,或用 curl/Postman 发 JSON |
| 中文乱码 | 编码问题 | 一般不会出现,确保文件保存为 UTF-8 |
我当初最头疼的是 POST 参数问题——我以为可以直接在 URL 传
?task=xxx,结果不行!FastAPI 默认 POST 需要 JSON body。后来才知道可以用Query或Form来接收 URL 参数,但初学建议先用文档页面测试。
接下来怎么学?我的建议
FastAPI 虽然简单,但要做出真正可用的项目,还需要学这些:
- 连接数据库:用
SQLModel或TortoiseORM操作 SQLite/MySQL - 用户认证:登录、注册、Token 验证(FastAPI 有官方教程)
- 部署上线:用 Vercel、Render 或阿里云部署你的 API
- 前后端联调:用你熟悉的前端(Vue/React)调用这个接口
别一上来就想做电商系统!先做一个“每日一句”API,再做一个“天气查询”,慢慢叠加功能。我见过太多新手卡在“想做个完整产品”上,结果三天就放弃了。
最后说两句
FastAPI 不是替代 Java 的银弹,但在快速验证想法、做 MVP 产品、个人项目上,它真的香。我现在的副业项目全用 FastAPI 写后端,配合 Vue 做前端,一个人就能交付完整产品。
记住:工具只是手段,做出东西才是目的。你不需要精通所有技术,只要能用 FastAPI 写出一个别人能用的接口,你就已经超越了 80% 的观望者。
现在,关掉这篇文章,打开你的编辑器,敲下那三行代码吧——
你的后端之旅,就从 {"message": "Hello World"} 开始!

评论 0