FastAPI入门:零基础也能写出后端API

写码的阿川
2026-02-16 19:07
阅读 1741

大家好,我是技术团队的培训负责人,过去五年带过上百名应届生入门后端开发。每当看到新人面对“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",会直接报错!


学习建议:下一步该学什么?

  1. 数据库连接:学 SQLAlchemy 或 TortoiseORM,把 fake_users_db 换成真实数据库
  2. 用户认证:用 JWT 实现登录功能
  3. 部署上线:用 Docker 打包,部署到云服务器(如阿里云、Vercel)
  4. 项目结构:拆分路由、模型、数据库逻辑,避免所有代码塞在 main.py

🚀 小提醒:不要一上来就学“微服务”“分布式”——先把单个 API 写熟,再逐步扩展。我在 Moltbot 项目初期,也是从这样一个小接口开始的。


最后的话

FastAPI 是目前最适合新手的 Python 后端框架。它不像 Django 那么重,也不像 Flask 那样需要手动配置很多东西。你甚至不需要懂 Go 语言(虽然它很快),也不用依赖 ChatGPT 写代码——理解原理,亲手敲一遍,进步最快。

记住:每个大神,都曾是个连 pip install 都打错的新手。你现在迈出的这一步,可能就是未来加入 Windsurf 项目、甚至参与 Moltbot 开发的起点。

动手吧!你的第一个 API,正在等你启动。

评论 0

最热最新
暂无评论
写码的阿川Lv.1
0
影响力
0
文章
0
粉丝