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

Flask小酒馆
2025-06-28 22:26
阅读 618

开篇:FastAPI是什么,用来做什么?

开篇:FastAPI是什么,用来做什么?

你有没有想过,像抖音、小红书或者淘宝这些网站的数据是怎么传送到手机上的?其实,它们背后都有一个叫“后端”的东西在默默工作。今天我们要学习的 FastAPI,就是一个帮你搭建后端服务的强大工具。

简单来说,FastAPI 是一个用 Python 编写的高性能 Web 框架,专门用来快速构建 API(应用程序编程接口)服务。你可以把它理解为是一个“数据快递员” —— 用户通过网页或 App 提交请求(比如登录、查看商品),FastAPI 接收到请求后,会调用服务器上相应的代码,处理数据,再把结果返回给用户。

FastAPI 的一大特点是它速度快,并且支持现代 Python 的新特性,比如自动文档生成和异步编程。它特别适合刚接触后端开发的新手,因为它的使用方式非常直观,而且有完善的文档和社区支持。

接下来,我们一步步开始我们的第一个 FastAPI 项目吧!


环境准备:搭建你的开发环境

环境准备:搭建你的开发环境

在正式写代码之前,我们需要准备好一些基本的开发工具和运行环境。别担心,这个过程并不复杂,跟着下面的步骤来操作就可以了。

步骤1:安装 Python

确保你的电脑上已经安装了 Python 3.8 或以上版本。
你可以打开终端(Windows 上是命令行,Mac/Linux 是 Terminal),输入以下命令查看是否已安装:

python --version

如果你看到类似 Python 3.9.7 这样的输出,说明已经安装好了。如果没有,请前往 Python 官网 下载安装。

步骤2:创建虚拟环境(推荐)

为了不干扰其他项目的依赖,我们建议使用 Python 的虚拟环境。

创建一个新的文件夹并进入:

mkdir fastapi-tutorial
cd fastapi-tutorial

然后创建虚拟环境:

  • Windows:
python -m venv venv
  • Mac/Linux:
python3 -m venv venv

激活虚拟环境:

  • Windows:
venv\Scripts\activate.bat
  • Mac/Linux:
source venv/bin/activate

此时你应该能看到命令行前面多了一个 (venv) 的提示。

步骤3:安装 FastAPI 和 Uvicorn

我们使用 pip 来安装 FastAPI 和它的运行服务器 Uvicorn:

pip install fastapi uvicorn

⚠️ 小贴士:Uvicorn 是一个 ASGI 服务器,用来运行 FastAPI 程序,可以把它看作是让 FastAPI 跑起来的那个“发动机”。

验证安装

我们可以先写一个小 demo 来测试是否安装成功。

新建一个文件 main.py,内容如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello, World!"}

然后在终端中运行:

uvicorn main:app --reload

打开浏览器访问 http://localhost:8000,你会看到页面显示:

{
    "message": "Hello, World!"
}

恭喜你!你的第一个 FastAPI 应用跑起来了 ✅


核心概念讲解:通俗易懂地说说这些术语

核心概念讲解:通俗易懂地说说这些术语

刚开始学时,总会听到一些让人困惑的专业术语。我们不用着急背下来,先了解它们的作用就行。

1. API(Application Programming Interface)

API 是一组预定义的函数,相当于不同程序之间交流的桥梁。比如你在微信里查天气,其实是微信调用了某个天气服务的 API。

2. HTTP 请求方法(GET、POST)

HTTP 是网络上传输数据的标准协议。常见的两种请求方式:

  • GET:获取数据(比如访问主页)
  • POST:提交数据(比如填写表单注册)

在 FastAPI 中,我们用装饰器来指定接口的请求方式:

@app.get("/items")        # GET 请求
@app.post("/create")      # POST 请求

3. 路由(Route)

路由就是 URL 的路径。比如 /login/users/list 都属于不同的路由地址。FastAPI 会根据不同的路由调用对应的函数。

4. 异步(async/await)

这是 FastAPI 高性能的一个秘密武器。不过对于新手来说,你现在只需要知道加上 async def 关键字可以让函数更高效地处理请求。例如:

@app.get("/data")
async def get_data():
    return {"status": "success"}

后面我们会用到它。


实战项目:做一个简单的“留言墙”接口

现在我们来动手完成一个简单的项目 —— 创建一个“留言墙”的 API 接口,实现以下功能:

  • 查看所有留言(GET)
  • 添加一条留言(POST)

第一步:创建基础结构

我们在 fastapi-tutorial 文件夹下创建一个新的文件 messages.py,写入以下内容:

from fastapi import FastAPI
from typing import List

app = FastAPI()

# 模拟数据库
messages_db = []

# 获取所有留言
@app.get("/messages", response_model=List[str])
def get_messages():
    return messages_db

# 添加留言
@app.post("/messages")
def add_message(msg: str):
    messages_db.append(msg)
    return {"status": "Message added"}

⚠️ 注意:response_model=List[str] 表示返回的数据类型是字符串列表。FastAPI 会自动进行验证和格式化输出。

第二步:运行服务

在终端中执行:

uvicorn messages:app --reload

服务启动后,打开 http://localhost:8000/docs,你会看到 FastAPI 自动为我们生成了一套交互式接口文档 🤩

点击 /messages 下面的 “Try it out”,然后在 “msg” 输入框中填入你想添加的内容,点击 “Execute”。再回到 /messages 接口,看看是否能获取刚刚添加的内容。

第三步:查看效果

  • 访问 http://localhost:8000/messages 可以看到当前所有的留言。
  • 使用 Postman 或者直接在浏览器的开发者工具中向 /messages 发送 POST 请求也可以添加内容。

这样,一个简单的留言功能就完成了!


常见问题解答

很多新手在学习过程中会遇到各种各样的问题,这里列出几个最常被问到的:

问题1:为什么我的代码报错了,说“找不到模块”?

可能是你没有正确安装依赖包。确认一下是否安装了 fastapiuvicorn

pip install fastapi uvicorn

还可以尝试升级 pip:

python -m pip install --upgrade pip

问题2:我的代码改了但没有生效?

这是因为 --reload 参数只在开发环境下有效,且需要文件保存才会触发热重载。请确保你已经保存了 .py 文件,并检查命令是否包含 --reload

问题3:访问 http://localhost:8000 出现 404?

这说明你可能没有正确设置路由。检查你的 @app.get("/") 函数是否存在,或者路径是否拼写错误。


学习建议:下一步要怎么走?

恭喜你完成了第一个 FastAPI 应用!这只是一个开始,后端世界还有很多精彩的内容等着你探索:

继续学习的方向:

  1. 数据库连接:学会如何与 MySQL、PostgreSQL、MongoDB 等数据库对接。
  2. 身份验证:学习 JWT、OAuth2 等用户权限控制机制。
  3. 部署上线:将你的服务部署到云服务器(如阿里云、AWS)。
  4. 单元测试:为你的接口编写测试用例,提高代码稳定性。
  5. 异步编程进阶:掌握 asyncio、await、并发请求等高级特性。
  6. RESTful 设计规范:写出更标准、易于维护的接口。

API接口文档-1

推荐学习资源:

  • FastAPI官方文档
  • 《Python自动化办公》—— 对零基础友好的 Python 教程
  • B站搜索关键词“FastAPI 入门教程”
  • GitHub 上搜“fastapi example”看看别人是怎么写的

总结

本教程从安装环境、解释概念到实战开发,带你一步步入门 FastAPI 开发。尽管它是轻量级的框架,但功能强大、效率高,非常适合初学者起步。

记住一句话:“学编程最好的办法就是不断敲代码。”不要怕犯错,每一个 bug 都是你成长的机会。

祝你在编程之路上越走越远!🚀

评论 0

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