FastAPI入门:Python后端开发新手指南
开篇:认识FastAPI,开启你的后端之旅

你有没有想过,像抖音、微信这些应用背后的数据是怎么处理的?它们是如何快速响应用户操作的呢?其实,这背后有一个看不见的“大脑”——后端服务器。FastAPI 就是帮助我们快速搭建这个“大脑”的工具之一。
什么是FastAPI?
FastAPI 是一个用 Python 编写的现代 Web 框架,专门用来创建API接口(也就是应用程序和服务器之间沟通的方式)。它速度快、代码简洁、自动生成文档,非常适合初学者学习使用。
你可以把 FastAPI 当作一个智能助手,当你需要对外提供一些数据或者功能时,比如获取天气信息、登录账号、上传照片,它就能帮你把这些操作变成别人可以调用的接口。
FastAPI适合做什么?
- 制作前后端分离网站的后端服务
- 开发移动 App 所需的 API 接口
- 快速搭建微服务系统
- 实现数据可视化、数据分析类系统的接口层
接下来我们就从零开始,一步步带你走进 FastAPI 的世界!
环境准备:让一切从干净起步

工欲善其事,必先利其器。在正式动手写代码之前,我们需要准备好我们的开发环境。
安装Python
如果你还没安装 Python,请到官网 https://www.python.org 下载最新版 Python(建议版本3.7及以上)。安装过程中记得勾选 Add to PATH,这样就可以在命令行中直接使用 python 命令了。
验证是否安装成功:
python --version
输出类似:
Python 3.12.1
说明已经安装好了。
安装FastAPI和Uvicorn
FastAPI 本身是一个框架,但我们还需要一个运行它的工具,叫做 Uvicorn,它是基于 ASGI 协议的服务器。
我们可以使用 pip 来安装它们:
pip install fastapi uvicorn
安装完成后可以用以下命令验证:
uvicorn --version
如果看到类似信息:
Running uvicorn 0.25.0 with CPython 3.12.1 on Linux
恭喜!你已经准备好开始写了!
核心概念:用大白话理解关键知识

在正式开发前,有几个基础概念你需要了解:
1. 什么是API?
想象一下你在超市买水,你不直接去生产线取水瓶,而是走到收银台跟店员说:“我要一瓶矿泉水”,然后店员就把水交给你。这里的“我要一瓶矿泉水”就是一种请求,而店员返回给你水的动作就是响应。
在编程的世界里,“店员”就是 API,它负责接收请求、执行任务、返回结果。比如你要查询今天北京的天气,你就会向天气服务发送请求,得到温度、风力等数据。
2. 什么是路由?
你可以把它理解为“导航路线”。当我们访问一个网址的时候,FastAPI会根据你访问的路径来决定该由谁处理请求。比如:
/hello表示访问首页打招呼/users/123表示查看ID为123的用户资料/create-user可能表示创建用户
这些都是不同的“路径”,每个路径对应一段程序逻辑。
3. 启动服务器
我们平时写的 FastAPI 应用,本质上就是一个程序,但为了让外界访问,我们必须启动一个 HTTP 服务。这就相当于开一家便利店,营业之后别人才能进去买东西。
我们在后面会使用 uvicorn 来启动服务。
实战项目:用FastAPI写一个简单的天气查询服务
让我们通过一个小项目来实践所学内容,实现一个简单的“天气查询接口”。
第一步:新建项目文件夹
建议你为自己准备一个项目目录,例如:
/weather-project
└── main.py
打开 main.py,开始编码。
第二步:最简单的Hello World
这是我们第一个接口,目标是当用户访问根目录 / 时,显示一句话。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def say_hello():
return {"message": "你好!欢迎使用我的天气查询服务"}
这段代码做了什么呢?
- 引入 FastAPI 类并创建一个实例
- 使用装饰器
@app.get("/")表示这是一个 GET 请求的路由 - 定义了一个函数,返回一个 JSON 数据
保存后运行启动命令:
uvicorn main:app --reload
现在打开浏览器,访问 http://localhost:8000,你会看到:
{
"message": "你好!欢迎使用我的天气查询服务"
}
✅ 成功啦!接下来继续扩展功能。
第三步:增加天气接口
我们现在要添加一个 /weather/{city} 接口,接受城市名作为参数,并返回温度、湿度等信息。
@app.get("/weather/{city}")
def get_weather(city: str):
# 这是一个模拟数据
data = {
"北京": {"temp": 26, "humidity": "50%", "condition": "晴"},
"上海": {"temp": 30, "humidity": "70%", "condition": "多云"},
"广州": {"temp": 34, "humidity": "80%", "condition": "雷阵雨"},
}
if city in data:
return data[city]
else:
return {"error": "暂时不支持该城市的天气查询"}
保存后刷新浏览器,访问:
http://localhost:8000/weather/北京
你会看到:
{
"temp": 26,
"humidity": "50%",
"condition": "晴"
}
访问一个不存在的城市试试看,看看有没有提示错误信息。
第四步:自动文档界面 Swagger UI 📚
FastAPI 最大的亮点之一就是自带文档系统。默认情况下,它会在 /docs 路径下生成一个交互式的 API 文档页面。
试着访问:http://localhost:8000/docs
你应该会看到这样的界面:
- 每个 API 都列出来了
- 有输入参数说明和试用框
- 点击 Try it out → Execute 就可以直接测试接口
是不是很酷?这就是为什么很多人选择 FastAPI 的原因。
第五步:支持POST方法,让用户提交数据
我们再加一个功能:用户提供城市名称和经纬度,查询详细天气信息。我们使用 POST 方法来传递更复杂的数据。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class LocationInput(BaseModel):
city: str
latitude: float
longitude: float
@app.post("/location")
def show_location_info(loc: LocationInput):
return {
"收到的城市": loc.city,
"经度": loc.longitude,
"纬度": loc.latitude,
"状态": "模拟天气信息已接收"
}
现在访问 /docs,找到 /location 接口,点击 Try It Out,填写如下 JSON 示例:
{
"city": "深圳",
"latitude": 22.5431,
"longitude": 114.0579
}
点击 Execute 发送请求,你会看到返回值中显示你刚才提交的内容。
🎉 我们完成了这个项目的基本功能!
常见问题解答 🔍
刚上手的朋友可能会遇到很多小问题,下面是一些高频提问。
Q1:启动服务时报错 “No module named ‘fastapi’”
这是没有安装 FastAPI 或者安装路径不对导致的。请重新运行安装命令:
pip install fastapi uvicorn
确认是否安装在正确的 Python 版本环境中,也可以尝试加上 pip3:
pip3 install fastapi uvicorn
Q2:浏览器打不开 localhost:8000,或出现Connection Refused
确保你的命令行中确实运行了 FastAPI 服务,且未被中断。如果仍然无法连接,检查电脑的防火墙设置是否阻止本地通信。
Q3:如何调试自己的代码?
建议使用 IDE 如 PyCharm 或 VSCode,它们都对 FastAPI 支持很好,可以直接运行调试模式。
学习建议:下一步怎么学?
你已经掌握 FastAPI 最基本的使用方式了,但后端开发还有很多值得深入的内容。以下是几个推荐学习方向:
- 数据库接入:学会连接 MySQL、PostgreSQL、MongoDB 等,存储真实用户数据。
- 身份认证与安全:学习 JWT、OAuth 等常见鉴权方式。
- 异步编程:了解 async / await 在 FastAPI 中的应用。
- 部署上线:学习 Gunicorn + Nginx 部署、Docker打包发布。
- 进阶性能优化:缓存机制、并发处理、负载均衡等。
结语:坚持写代码才能走得更远
刚开始可能觉得有些枯燥,但每写出一个接口、跑通一次请求,你都会更有成就感。FastAPI 是非常优秀的现代化框架,它不仅适合做原型开发,也适用于实际产品。
记住一点:不要怕犯错,多敲代码才是王道。
祝你在 FastAPI 学习的路上越走越顺,早日成为独当一面的后端开发者 💪
如果你有任何问题,可以在评论区留言,我会尽力回复大家~

评论 0