第1节:环境搭建,开发第一个FastAPI程序
既然你点开了这第一章,我猜你已经准备好从零开始,和我一起搭建出一个 FastAPI 项目了——每日电影推荐.
我们先来一睹这个项目的风采(当然如果你看不上的话,请不要告诉其他人😄)。
每日电影推荐是一个网站项目,主要页面效果如下:


【核心功能】
- 首页随机推荐一部电影
- 详情页查看详细信息和观看电影
【技术栈】
解释器:Python 3.11及以上 后端: FastAPI 前端: Vue3 数据库:sqlite
别担心,我们不会一上来就讲深奥的概念——先跑出第一个 Hello World,看到它在浏览器里“活起来”,那一刻你就会对后面的学习更有信心。
FastAPI 简介:为什么是它?
FastAPI 是近年来非常热门的 Python Web 框架。 如果你之前接触过 Flask、Django,那么可以把 FastAPI 想象成:
速度更快、语法更现代、自动文档更强的 Flask。
那么,它究竟有什么吸引人的地方?
✅ 1. 快——真的很快
FastAPI 基于 Python 的异步特性(async/await),性能接近 Node.js 和 Go。 即使你暂时不理解“异步”,也完全没关系——但你会享受到性能带来的红利。
✅ 2. 自动生成 API 文档(Swagger UI)
只要写好接口,文档自动出现,不需要你额外做任何事。 这在团队协作、调试、对外发布 API 时非常省心。
✅ 3. 类型提示友好
它与 Python 的类型提示(type hint)深度结合。 写代码更清晰,也更容易让编辑器给你实时提示。
✅ 4. 学习曲线非常平滑
如果你会基本的 Python,你就能用 FastAPI 写接口、做项目。
这套《每日电影推荐》系列教程就是希望带你体验一件事:
后端开发不必复杂,从一个简单的接口,到最终每天自动推送推荐电影,你完全能一步步做出来。
接下来,我们就正式开始第一步: 让你的项目跑出第一个 Hello World。
1. 安装与创建虚拟环境
在开始写代码之前,我们先把环境搭好。这一步很基础,但非常关键,就像搭建一间餐厅前,先把厨房准备好一样。
首先在你喜欢的路径下创建一个文件夹,命名为DailyMovie。
注意:路径中不要包含中文,例如:“d:/电影/动作爱情/DailyMovie”, 养成好习惯,不要给自己挖坑。
用你的编辑器(我这里用的是vscode, 其他也可)打开这个文件,然后打开终端(Terminal ),创建一个名为.venv虚拟环境,命令如下:
python -m venv .venv

执行完成后,会发现目录中新增一个.env文件夹。如下图所示。

启动虚拟环境
根据系统不同,启动命令也略有区别:
Mac/Linux:
source .venv/bin/activate
Windows:
.venv\Scripts\activate
启动成功后,会在终端显示(.venv)表示,当前已经在虚拟环境中, 如下图所示。

友情提示:
如果需要退出虚拟环境,输入: deactivate
在虚拟环境中安装 FastAPI 和 Uvicorn
接下来,在激活的 .venv 环境下,安装我们项目真正要用到的两个核心包:
pip install fastapi "uvicorn[standard]"
如下图所示。

它们分别做什么?
fastapi:今天的主角,快速、高效、现代的 Web 框架。uvicorn:负责让 FastAPI 跑起来的高速 ASGI 服务器。
注意:
如果安装速度很慢,可以换国内镜像源,具体配置方式你可以参考我在《大熊课堂零基础入门动画课》里的讲解。
查看所有安装的包和版本,可以使用如下命令:
pip list
运行结果如下:

小知识:
因为FastAPI会依赖于一些第三方包,例如pydantic、click等,所以执行安装FastAPI命令时,会一起安装相关的包。
2. 你的第一段 FastAPI 代码 (main.py)
下面我们开始写项目里第一个能跑的文件。
在项目根目录 DailyMovie/ 下创建 main.py,内容如下:
from fastapi import FastAPI
app = FastAPI() # 创建FastAPI实例
@app.get("/")
def read_root():
return {"message": "Hello Movie", "status": "OK"}
这段代码非常短,但已经足够让你跑起来一个小 Web 服务。
简单解释一下:
app = FastAPI(): 就像创建一个餐厅实例。@app.get("/"): 就像在门口挂个牌子,告诉客人们(浏览器),如果他们走正门(访问/),就按下面的规矩招待。return {...}: 我们返回的是 Python 字典,FastAPI 会非常贴心地自动把它变成 JSON 格式(Web 开发中最通用的数据格式)。
3. 启动服务器 🚀
在终端中,确保你位于 main.py 所在的文件夹,输入以下命令并回车:
uvicorn main:app --reload
如下图所示。

命令拆解:
main: 指的是main.py文件。app: 指的是main.py里面创建的那个app = FastAPI()对象。--reload: 开启热重载模式。这是开发神器!当你修改代码并保存时,服务器会自动重启,不用手动关了再开。
4. 验证成果
方式一:直接访问
打开浏览器,访问:http://127.0.0.1:8000
你应该能看到屏幕上显示:
{"message": "Hello Movie", "status":"OK"}
如下图所示。

小知识:
如果为了在谷歌浏览器中显示更好看的输出效果,如下图,可以安装谷歌浏览器插件:JSON-handle。
安装方式请搜索我之前的
安装浏览器插件教程。

方式二:查看交互式文档 (Swagger UI) ✨
这是 FastAPI 最强大的功能之一!
你会看到一个自动生成的文档页面。
- 点击绿色的 GET / 按钮。
- 点击右侧的 Try it out。
- 点击蓝色的 Execute。
- 查看下方的 Response body,是不是看到了我们的 JSON 数据?
效果如下图。

✅ 本节作业
- 成功运行上面的代码。
- 尝试修改
main.py中的返回内容,比如改成{"name": "大熊课堂Andy", "age": "18"}。 - 保存文件,观察终端是否自动重载了。
- 刷新浏览器,看内容变了没。
完成这部分后,你已经正式迈出打造“每日电影推荐”服务的第一步啦! 下一章,我们开始搭建项目骨架,构建核心API,把服务做得更有结构感。
如果你喜欢这个教程的话,请帮忙“关注+点赞+转发”,在此谢过各位🙏
【大熊课堂精品课程】
Python零基础入门动画课: https://www.bilibili.com/cheese/play/ss7988
Django+Vue:全栈开发: https://www.bilibili.com/cheese/play/ss8134
PyQT6开发桌面软件: https://www.bilibili.com/cheese/play/ss12314
Python办公自动化: https://www.bilibili.com/cheese/play/ss14990
Cursor AI编程+MCP:零基础实战项目课: https://www.bilibili.com/cheese/play/ss105194189
Pandas数据分析实战: https://www.bilibili.com/cheese/play/ss734522035
AI大模型+Python小白应用实战: https://www.bilibili.com/cheese/play/ss3844