FastAPI上手太难?零基础也能写出第一个Python后端接口!

一键启动人生
2026-01-03 15:34
阅读 525

大家好,我是小K,一名在大厂干了三年后端开发的工程师,业余时间也在B站做技术UP主。经常有粉丝私信问我:“想学Python写后端,该从哪开始?”、“Django太重,Flask又太老,有没有更现代的选择?”——我的答案一直是:试试 FastAPI

我当初学的时候,也被各种框架绕得晕头转向。直到接触 FastAPI,才发现原来写后端可以这么简洁、高效,还能自动生成文档!今天这篇教程,就是专门为你——完全零基础的新手准备的。不需要你懂数据库、不需要你会部署,只要会一点 Python 基础,就能跟着做出一个能跑的 API。

顺便提一句,虽然标题里出现了 Go(因为很多同学会对比),但本文不涉及任何 Go 代码。我会用实战经验告诉你:为什么 Python + FastAPI 是新手入门后端的最佳组合之一。


一、FastAPI 到底是什么?能用来做什么?

简单说,FastAPI 是一个用 Python 写的 Web 框架,专门用来快速开发高性能的 API(也就是后端接口)。

  • 它比 Flask 更现代,比 Django 更轻量。
  • 自动帮你生成交互式 API 文档(不用再手动写 Swagger!)。
  • 支持异步(async/await),性能接近 Go 语言写的后端(真的!)。
  • 类型提示(Type Hints)是核心,代码更安全、IDE 提示更智能。

💡 举个实际例子:你想做一个天气查询小程序,前端发请求给你的服务器,你返回今天的温度。这个“接收请求 → 处理逻辑 → 返回数据”的过程,就是 FastAPI 要做的事。


二、环境准备:5 分钟搭好开发环境

别担心,这一步非常简单。你只需要:

  1. 安装 Python 3.7+
    python.org 下载最新版(推荐 3.9 或 3.10)。安装时记得勾选 “Add to PATH”。

  2. 创建虚拟环境(强烈建议!)
    虚拟环境能避免不同项目之间的依赖冲突。打开终端(Windows 用 CMD 或 PowerShell,Mac/Linux 用 Terminal),执行:

    # 创建名为 fastapi-demo 的虚拟环境
    python -m venv fastapi-demo
    
    # 激活虚拟环境
    # Windows:
    fastapi-demo\Scripts\activate
    # Mac/Linux:
    source fastapi-demo/bin/activate
    
  3. 安装 FastAPI 和启动服务器
    在激活的虚拟环境中运行:

    pip install fastapi uvicorn[standard]
    
    • fastapi:核心框架
    • uvicorn:高性能 ASGI 服务器(类似 Go 里的 Gin 框架用的 HTTP 服务器)
  4. 验证是否成功
    运行以下命令,看到版本号就说明装好了:

    python -c "import fastapi; print(fastapi.__version__)"
    

避坑指南:不要直接用 pip install 装到全局 Python!一定要用虚拟环境,这是我早期踩过的坑。


三、核心概念:用最简单的语言讲清楚

1. 什么是“路由”(Route)?

你可以把路由理解为“URL 路径”。比如 /users/weather,每个路径对应一个功能。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")  # ← 这就是一个路由!
def home():
    return {"message": "Hello, World!"}

访问 http://localhost:8000/ 就会返回 JSON 数据。

2. 什么是“请求方法”(GET/POST 等)?

  • @app.get():获取数据(比如查用户信息)
  • @app.post():提交数据(比如注册新用户)
  • @app.put() / @app.delete():更新或删除

3. 什么是“自动文档”?

启动服务后,访问:

  • http://localhost:8000/docs → 自动生成的 Swagger UI
  • http://localhost:8000/redoc → 另一种风格的文档

不用写一行文档代码,所有接口、参数、返回格式都自动展示出来!这是我当初最震撼的功能。


四、实战:一步步写一个“待办事项”API

现在,我们来做一个超简单的 Todo List 后端。目标:实现“添加任务”和“查看所有任务”。

第一步:创建 main.py

在项目文件夹里新建 main.py,写入以下代码:

from fastapi import FastAPI

app = FastAPI()

# 模拟数据库(实际项目用 SQLite/PostgreSQL)
todos = []

@app.get("/todos")
def get_todos():
    return todos

第二步:添加“新增任务”接口

我们需要接收用户提交的任务内容。使用 POST 请求,并定义数据结构。

from fastapi import FastAPI
from pydantic import BaseModel  # ← 用于数据校验

app = FastAPI()

class TodoItem(BaseModel):
    title: str
    completed: bool = False  # 默认未完成

todos = []

@app.get("/todos")
def get_todos():
    return todos

@app.post("/todos")
def add_todo(todo: TodoItem):  # ← 自动解析 JSON 并校验类型
    todos.append(todo.dict())
    return {"message": "Todo added!", "todo": todo}

第三步:启动服务器并测试

在终端运行:

uvicorn main:app --reload
  • main:app 表示从 main.py 中导入 app 对象
  • --reload 表示代码修改后自动重启(开发时超有用!)

然后打开浏览器访问 http://localhost:8000/docs,你会看到两个接口:

接口路径 方法 功能
/todos GET 获取所有任务
/todos POST 新增一个任务

点击 POST 接口的 “Try it out”,输入:

{
  "title": "学习 FastAPI",
  "completed": false
}

点击 “Execute”,就能看到返回结果!再刷新 GET 接口,任务已经存在了。

🎯 这就是完整的后端开发流程:定义数据结构 → 写接口逻辑 → 自动获得文档 → 前端调用。


五、常见问题解答(新手必看!)

Q1:为什么我的代码改了没生效?

确保启动时加了 --reload 参数。如果没有,手动 Ctrl+C 停止再重启。

Q2:报错 ModuleNotFoundError: No module named 'fastapi'

你可能没激活虚拟环境!先运行 source venv/bin/activate(Mac/Linux)或 venv\Scripts\activate(Windows)。

Q3:如何接收 URL 参数?比如 /user/123

使用路径参数:

@app.get("/user/{user_id}")
def get_user(user_id: int):  # 自动转成整数
    return {"user_id": user_id}

Q4:和 Go 框架(比如 Gin)比,FastAPI 性能差很多吗?

并不! 根据 TechEmpower 基准测试,FastAPI 的性能接近 Go 的 Gin 框架,远超 Flask 和 Django。关键在于它底层用了 Starlette(ASGI)和 Pydantic(C++加速),加上 Python 3.7+ 的 async 支持,速度飞起。

框架 语言 性能(Requests/sec) 学习曲线
FastAPI Python ~80,000 ⭐⭐
Gin Go ~100,000 ⭐⭐⭐
Flask Python ~5,000
Django Python ~3,000 ⭐⭐⭐⭐

注:数据为简化示意,实际取决于具体场景。

Q5:代码写完怎么分享给别人?

上传到 GitHub!这是程序员的“简历”。

  1. 初始化 Git 仓库:
    git init
    echo "__pycache__/" > .gitignore
    echo "venv/" >> .gitignore
    
  2. 提交代码:
    git add .
    git commit -m "feat: add todo api"
    
  3. 在 GitHub 新建仓库,按提示推送即可。

六、下一步学习建议

恭喜你完成了第一个 FastAPI 项目!接下来,我建议你按这个路径深入:

  1. 学数据库:用 SQLAlchemyTortoise ORM 连接 SQLite,把 todos 存到硬盘而不是内存。
  2. 学认证:实现登录接口,用 JWT 保护敏感 API。
  3. 学部署:用 Docker 打包,部署到云服务器(比如阿里云轻量应用服务器)。
  4. 看官方文档https://fastapi.tiangolo.com 写得极其友好,还带中文!

🔔 我的 B 站频道每周更新 FastAPI 实战视频,从“用户注册登录”到“WebSocket 聊天室”,全部开源在 GitHub。搜索“小K后端课”就能找到。


结语:别怕,后端没那么难

我当初学后端时,也觉得“API”、“路由”、“异步”这些词高深莫测。但其实,所有复杂的系统,都是从 return {"hello": "world"} 开始的

FastAPI 的设计哲学就是:让简单的事情保持简单,复杂的事情变得可能。你不需要一开始就懂高并发、微服务,先跑通一个接口,建立信心,才是最重要的。

现在,打开你的编辑器,敲下那几行代码。当你在浏览器里看到自己写的 JSON 数据时,你会明白:我也能做后端了!

最后提醒:代码要动手写,不能只看。哪怕抄一遍,也比光读强十倍。

加油,未来的后端工程师!我们在 GitHub 见 🚀

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝