跳到主要内容

FastAPI 实战:从零搭建学生管理系统(一)—— 环境搭建与 Hello World

一、前言​

Hello,大家好,欢迎收看大熊课堂,我是 Andy。从本节开始,我们将要上手 FastAPI,从零开始搭建开发环境,然后写出一个真正的能够调用的接口,并且在浏览器中能够轻松测试它。

二、为什么选择项目驱动?​

这个课程咱们依然使用大熊课堂以项目驱动的方式来进行开发。

传统的学习模式是:先学语法 → 学习 API → 做练习 → 做项目。但问题是,当你前面都做完了,到开始进行项目的时候,前面的 80% 基本上全忘了,做项目就无从下手了。

而我们大熊课堂的项目驱动方式,会以一个项目为核心。比如咱们这个课程中,先以学生管理系统为核心,通过开发这个项目入手,在这个过程中嵌入 FastAPI 的各种知识点。这样,知识是一个网状的,而不是碎片化的。

此外,这种方式还更加接近真实的工作环境,因为你还可以建立自己的系统设计能力。很多同学会卡在“我知道代码怎么写,但是不知道怎么组织代码”。我们会教大家先从零星的代码、从单一文件开始写,然后对它进行拆分,教大家怎么组织文件的组织结构、拆分模块、命名文件、对数据进行建表等等。

而且这种方式还有一个好处——形成正反馈。写完一个接口就能调用,就能看到结果。遇到 Bug,再一起修复。这样的方式会带来极大的成就感、持续的动力和更加专注度。

三、准备开发环境​

3.1 环境要求​

首先,我们需要具备 Python 开发环境。Python 版本至少需要 3.12。我这里使用的是 Python 3.14,你可以跟着我用相同的版本。

编辑器,我这里使用的是 VSCode,你也可以使用任何一个编辑器,比如 PyCharm 等。像一些 AI 编辑器(Cursor、Copilot)也可以,但这里并不推荐大家使用 AI 编辑器,因为 AI 编辑器会有各种提示,不利于初学者。建议先学习基础知识以后,后期再使用 AI 智能编辑器去开发项目。

3.2 创建项目文件夹​

打开 VSCode,找到一个路径,新建一个文件夹,起名为 Student Management API,然后点击打开。

创建项目文件夹

现在这个项目是空的,它就是一个文件夹。

3.3 为什么需要虚拟环境?​

接下来,我们需要安装 FastAPI。但首先,我们要创建一个虚拟环境。

为什么要使用虚拟环境呢?如果直接在终端使用 pip 命令安装,它会默认安装到全局。但是,当我们在开发多个项目时,通常会将每个项目进行隔离。

举个例子:一家中有 4 个儿子,4 个儿子长大以后成家,都有了自己的独立家庭,4 个家庭之间相互独立。这就是为什么要使用虚拟环境。

3.4 创建虚拟环境​

创建虚拟环境,你可以使用 venv,也可以使用 poetry 来管理包。哪种方式都可以,这里咱们为了减轻零基础同学的负担,就使用最常用的 venv。

首先,打开终端。在 VSCode 中,可以向上拖动终端区域,然后我们就看到了当前路径下:

Student Management API

输入命令创建虚拟环境:

python -m venv venv

执行完成以后,我们会发现目录中多了一个 venv 虚拟环境文件夹。

3.5 启动虚拟环境​

启动虚拟环境,其实就是去执行 venv 下面的激活脚本。

Mac 系统:

source venv/bin/activate

启动完成以后,会看到左侧多了一个 (venv),这说明咱们当前就是在虚拟环境中。

启动虚拟环境

Windows 系统:

venv\Scripts\activate

如果要关闭虚拟环境,使用:

deactivate

3.6 安装 FastAPI​

在虚拟环境下,安装 FastAPI:

pip install "fastapi[standard]"

这里加上 [standard] 表示安装标准版的 FastAPI,它会安装更多的相关依赖,其中就包括 uvicorn 以及 fastapi cli。后面我们就可以使用 fastapi 命令来执行相关操作了。

如果大家安装比较慢,可以使用国内的镜像源,比如清华大学的、阿里云的、或者中国科技大学的都可以,下载速度会提升很多。

安装完成后,可以检测一下是否安装成功:

pip list
查看已安装的包

可以看到,安装了这么多包,其中最主要的就是 fastapi。因为我们使用了标准版,它还添加了 fastapi-cli,以后我们就可以使用 fastapi 这个命令来执行相关操作了。

四、编写第一个 FastAPI 程序​

4.1 创建 main.py​

安装 FastAPI 以后,接下来咱们开始编写第一行代码:Hello World。

在项目下新建一个文件。注意:文件的位置不是在 venv 目录里面,而是要放到外层。点击外层,再点击加号,文件就跑到了同级。这里我们命名为 main.py。

创建 main.py 文件

目录结构如下:

Student Management API/
├── venv/
└── main.py

4.2 编写代码​

编写第一行 FastAPI 代码:

from fastapi import FastAPI

app = FastAPI()

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

代码说明:

  • from fastapi import FastAPI:导入 FastAPI 类
  • app = FastAPI():实例化 FastAPI 应用
  • @app.get("/"):定义一个 GET 请求的接口,路径为根路径 /
  • def get_root():定义函数,返回一个字典

这样我们就完成了第一个程序。

4.3 启动服务​

在终端中,使用 fastapi 命令启动开发环境:

fastapi dev main.py

启动后,终端输出信息:

INFO:     Uvicorn running on http://127.0.0.1:8000
INFO: Application startup complete.
启动 FastAPI 开发服务器

可以看到,服务已经启动,当前模块是 main.py。

4.4 测试接口​

在浏览器中访问 http://127.0.0.1:8000,可以看到输出的内容:

{
"message": "Hello World"
}
接口返回 Hello World

4.5 自动生成的 API 文档​

FastAPI 还有一个很贴心的功能——自动生成 API 文档。访问 http://127.0.0.1:8000/docs:

Swagger 自动生成的 API 文档

这是 Swagger 为我们提供的一个文档,可以在文档中进行接口调试。

点击 "Try it out",然后点击 "Execute":

在 Swagger 文档中测试接口

发送请求后,可以看到响应结果:

{
"message": "Hello World"
}

下面还有一些具体的返回码信息。

五、总结​

就这么一行代码,它不但输出了一个 JSON 格式的接口,而且还贴心地生成了一个文档,我们可以在这个文档中进行各种测试。这就是 FastAPI 的一个优势。

如果你已经输出了 JSON 格式数据,并且也看到了这个文档,恭喜你小伙伴,你已经实现了第一个 FastAPI 程序!

小伙伴们,我们下节见!

课程推荐

想系统学习这门课程?

你已阅读完本文。需要更完整的知识体系,可以继续了解「FastAPI 项目实战」。

查看课程详情