FastAPI入门:Python后端开发新手指南

Grafana看图员
2025-06-26 13:00
阅读 416

开篇:FastAPI是什么,我能用它做什么?

开篇:FastAPI是什么,我能用它做什么?

你有没有想过,当你在网页上输入一个地址,点击“登录”按钮或者发送一条消息时,这些操作的背后到底是怎么工作的呢?答案就是——后端服务

今天我们要学习的 FastAPI,就是用来帮你快速开发这种后端服务的一个 Python 框架。
它特别适合刚接触编程的新手,因为:

  • 它使用的是我们熟悉的语言——Python
  • 它非常高效,可以处理大量请求
  • 它自动生成文档,方便调试和测试
  • 学习曲线平缓,代码简洁明了

你能用 FastAPI 做什么?

FastAPI 可以帮你创建很多类型的后端应用,比如:

  • 用户注册/登录系统
  • 商品信息展示接口(如电商网站)
  • 聊天机器人后台
  • 数据统计分析服务

一句话总结:你可以用 FastAPI 把你的想法变成能被别人访问的互联网服务。


环境准备:搭建我们的开发环境

环境准备:搭建我们的开发环境

开始之前,我们需要先准备好运行 FastAPI 的“舞台”。这里我们从最基础的步骤讲起,确保零基础的你也能够轻松搞定。

第一步:安装 Python

如果你还没安装 Python,建议去官网下载最新版本(推荐 3.9+):https://www.python.org/

Windows 用户记得勾选“Add to PATH”,Mac 和 Linux 一般自带,但也可以升级最新版本。

验证是否安装成功:

python --version

出现类似 Python 3.10.6 就说明安装好了。


第二步:安装 FastAPI 和 Uvicorn

我们通过 pip 安装 FastAPI:

pip install fastapi uvicorn

解释一下这两个工具是干什么的:

工具名 作用说明
FastAPI 我们要用的核心框架
Uvicorn 一个高性能的服务器引擎,用来运行 FastAPI 应用

第三步:安装代码编辑器(推荐 VSCode)

你可以选择任何你喜欢的编辑器,但作为新手强烈推荐 Visual Studio Code(简称 VSCode),因为它免费、功能强大,且对 Python 支持非常好。

在 VSCode 中安装 Python 扩展插件(搜索栏输入 "Python"),这将帮助你更方便地编写和运行 Python 代码。


验证一切是否就绪

新建一个文件叫 main.py,写入以下内容:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "欢迎来到我的第一个FastAPI项目!"}

然后在命令行中运行:

uvicorn main:app --reload

⚠️ 如果报错找不到 uvicorn,请检查是否第二步正确安装。

打开浏览器,访问 http://localhost:8000 ,你应该会看到:

{"message": "欢迎来到我的第一个FastAPI项目!"}

✅ 成功啦!我们的第一个 FastAPI 接口已经上线!


核心概念:用最简单的语言解释关键知识点

核心概念:用最简单的语言解释关键知识点

接下来我们会讲解几个关键的 FastAPI 概念,并配上例子。不用担心,它们都非常简单,只需要一点点耐心就能理解。

📌 路由(Route)

路由就像导航地图上的路线,告诉程序当用户访问某个网址时该执行哪个函数。

示例:添加一个 /hello 接口

@app.get("/hello")
def say_hello():
    return {"data": "你好呀,世界!"}

现在访问 http://localhost:8000/hello 你会看到返回的 JSON。


📌 请求方法(GET / POST / PUT / DELETE)

常见的请求方法有四种:

方法名 用途示例
GET 获取数据(如查看商品信息)
POST 提交数据(如注册或登录)
PUT 更新数据
DELETE 删除数据

示例:POST 提交数据

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
def create_item(item: Item):
    return {"received": item}

现在访问 http://localhost:8000/docs,你会看到自动生成的交互式 API 文档,在那里你可以尝试发送 POST 请求试试看!


📌 参数传递方式

FastAPI 支持多种参数接收方式:

  1. 路径参数(Path Parameters)
    例如 /user/{user_id} 中的 user_id 是路径参数
@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"id": user_id}
  1. 查询参数(Query Parameters)
    例如访问 /search?name=Tom 中的 name 是查询参数
@app.get("/search")
def search(name: str = None):
    return {"query": name}

📌 响应与状态码

默认返回的是 200 状态码表示“OK”。

如果你想让程序返回不同的结果,比如 404 表示“找不到资源”,可以用如下方式:

from fastapi import FastAPI, HTTPException

@app.get("/products/{product_id}")
def read_product(product_id: int):
    if product_id <= 0:
        raise HTTPException(status_code=404, detail="产品不存在")
    return {"product_id": product_id}

实战项目:做一个简易待办事项(Todo)管理接口

实战项目:做一个简易待办事项(Todo)管理接口

现在我们来动手做一个小型项目——创建一个用于管理待办事项的后端 API。

功能清单:

  1. 查看所有待办项
  2. 添加一个新的待办项
  3. 删除一个待办项
  4. 返回漂亮的文档页面(自动完成)

第一步:创建一个 Todo 数据模型

我们将使用 Pydantic 来定义数据结构:

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

app = FastAPI()

# 数据模型
class TodoItem(BaseModel):
    id: int
    title: str
    done: bool = False

# 模拟数据库
todos_db = []

@app.get("/todos", response_model=List[TodoItem])
def list_todos():
    return todos_db

访问 http://localhost:8000/todos,你应该看到返回空数组 []


第二步:增加一个新的 Todo

@app.post("/todos")
def add_todo(todo: TodoItem):
    todos_db.append(todo)
    return {"message": "新增成功"}

试着通过 Swagger 文档提交一个任务看看。


第三步:删除某条 Todo

@app.delete("/todos/{todo_id}")
def delete_todo(todo_id: int):
    for idx, todo in enumerate(todos_db):
        if todo.id == todo_id:
            del todos_db[idx]
            return {"message": "删除成功"}
    return {"message": "未找到指定ID的任务"}

试试看你能不能成功删掉刚刚添加的内容。


✅ 到目前为止,我们已经完成了一个完整的简易后端功能!


常见问题解答:新手容易遇到的问题汇总

以下是一些常见问题及解决方法,供你在练习过程中参考。


❓ Q1:启动时提示 “ModuleNotFoundError: No module named 'fastapi'”

原因: FastAPI 还没有安装
解决办法: 在终端中运行以下命令:

pip install fastapi uvicorn

❓ Q2:访问接口时显示错误“Not Found”

原因:

  • URL 地址不对
  • 路由拼写有误
  • 忘记重启服务

解决办法:

  • 检查 URL 是否准确(如 /hello 而不是 /hallo
  • 检查代码中的 @app.get("/xxx") 的拼写
  • 使用 --reload 自动热更新,减少重复启动

❓ Q3:JSON 返回乱码或格式错误

原因: 返回的数据结构不能直接转成 JSON
解决办法:

  • 确保返回值是字典、列表等可序列化类型
  • 如果用了自定义类,要继承 BaseModel
  • 或者手动转换为 dict 类型再返回

❓ Q4:Swagger 页面打不开?

原因: 可能是浏览器设置阻止了本地加载,也可能是网络不稳定
解决办法:

  • 尝试刷新页面或更换浏览器
  • 访问 http://localhost:8000/redoc (另一种文档界面)
  • 如果仍有问题,可以暂时忽略文档页,继续编码不影响

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

恭喜你完成了 FastAPI 的第一课!这只是万里长征的第一步,接下来的学习路径建议如下:

负载均衡配置-2


🔹【进阶技能】

  1. 连接真实数据库(如 SQLite / MySQL / PostgreSQL)
  2. 加入身份认证机制(JWT Token)
  3. 学习中间件(Middleware)和依赖注入
  4. 部署到线上服务器(如使用 Docker + Nginx)

🔹【推荐项目练手】

尝试开发这些小项目,可以极大提升你的实战能力:

  • 用户登录注册系统
  • 博客文章管理系统
  • 网易云音乐歌词查询 API
  • 天气预报接口(调用第三方 API)

🔹【学习资源推荐】

  • FastAPI 官方文档(中文版) https://fastapi.tiangolo.com/
  • B站教程视频:“FastAPI零基础教学”
  • GitHub 上搜 “fastapi example” 看别人是怎么写的

✅ 总结回顾

本篇《FastAPI入门:Python后端开发新手指南》共分五个部分:

章节 内容概要
开篇介绍 解释 FastAPI 是什么
环境准备 详细讲解如何安装配置
核心概念 包括路由、请求方法、参数等
实战项目 编写一个 Todo 待办事项接口
常见问题与建议 新手问题答疑 + 下一步学习方向

🙌 结语:后端开发其实没有你想的那么难!

负载均衡配置-1

记住一点:每一个大牛程序员,都是从打印“Hello World”开始的。

只要坚持实践、不怕犯错,相信你很快就可以做出属于自己的 Web 应用了!

如果你喜欢这篇文章,不妨点赞收藏,我会继续更新更多适合初学者的 Python & 后端教程!🚀


需要配套源码或练习题的朋友,欢迎留言联系我获取!

评论 0

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