FastAPI 入门:零基础也能写出 Python 后端接口

TPS计算员
2025-12-25 01:51
阅读 2878

大家好,我是一名从培训班出来的前端开发,但因为在工作中经常需要和后端同事对接接口,自己也慢慢学起了后端知识。后来我发现,其实很多像我一样的新手,只要有一个清晰、简单的入门引导,完全可以在几天内上手写自己的后端服务。

今天这篇教程,就是我当初自学 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 为例):

  1. 下载并安装 Python(记得勾选 “Add to PATH”)
  2. 打开命令行(Win+R 输入 cmd),输入:
    python --version
    
    如果显示版本号(如 Python 3.11.5),说明装好了。
  3. 创建一个项目文件夹,比如叫 my-fastapi-app
  4. 进入该文件夹:
    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”,看到返回成功!

💡 注意:这里 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 虽然简单,但要做出真正可用的项目,还需要学这些:

  1. 连接数据库:用 SQLModel 或 TortoiseORM 操作 SQLite/MySQL
  2. 用户认证:登录、注册、Token 验证(FastAPI 有官方教程)
  3. 部署上线:用 Vercel、Render 或阿里云部署你的 API
  4. 前后端联调:用你熟悉的前端(Vue/React)调用这个接口

别一上来就想做电商系统!先做一个“每日一句”API,再做一个“天气查询”,慢慢叠加功能。我见过太多新手卡在“想做个完整产品”上,结果三天就放弃了。


最后说两句

FastAPI 不是替代 Java 的银弹,但在快速验证想法、做 MVP 产品、个人项目上,它真的香。我现在的副业项目全用 FastAPI 写后端,配合 Vue 做前端,一个人就能交付完整产品。

记住:工具只是手段,做出东西才是目的。你不需要精通所有技术,只要能用 FastAPI 写出一个别人能用的接口,你就已经超越了 80% 的观望者。

现在,关掉这篇文章,打开你的编辑器,敲下那三行代码吧——
你的后端之旅,就从 {"message": "Hello World"} 开始!

评论 0

最热最新
暂无评论
TPS计算员Lv.1
0
影响力
0
文章
0
粉丝