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。
目录结构如下:
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.
可以看到,服务已经启动,当前模块是 main.py。
4.4 测试接口
在浏览器中访问 http://127.0.0.1:8000,可以看到输出的内容:
{
"message": "Hello World"
}
4.5 自动生成的 API 文档
FastAPI 还有一个很贴心的功能——自动生成 API 文档。访问 http://127.0.0.1:8000/docs:
这是 Swagger 为我们提供的一个文档,可以在文档中进行接口调试。
点击 "Try it out",然后点击 "Execute":
发送请求后,可以看到响应结果:
{
"message": "Hello World"
}
下面还有一些具体的返回码信息。
五、总结
就这么一行代码,它不但输出了一个 JSON 格式的接口,而且还贴心地生成了一个文档,我们可以在这个文档中进行各种测试。这就是 FastAPI 的一个优势。
如果你已经输出了 JSON 格式数据,并且也看到了这个文档,恭喜你小伙伴,你已经实现了第一个 FastAPI 程序!
小伙伴们,我们下节见!
想系统学习这门课程?
你已阅读完本文。需要更完整的知识体系,可以继续了解「FastAPI 项目实战」。
查看课程详情