FastAPI入门:Python后端开发新手指南
开篇:什么是FastAPI,它能做什么?

在现代Web开发中,后端(也叫服务器)负责处理业务逻辑、数据存储和与前端的交互。如果你是想学习如何构建一个网站或者App背后那个“看不见的”部分,那么你来对地方了!
FastAPI 是一个用于创建Web API 的 高性能 Python 框架。它可以让你用简单的 Python 代码快速搭建出功能强大的接口服务(例如登录接口、注册接口、查询数据等)。你可以把它看作是一个“工具包”,专门帮你把 Python 代码变成网页或App可以访问的服务。
FastAPI的特点:
- 快速开发:基于Python类型提示,无需手动写文档
- 自动生成接口文档:访问
/docs即可看到美观的调试界面 - 支持异步编程:适合高并发场景
- 易学易用:不需要太多基础就能上手
接下来我们就一步一步来学习怎么使用 FastAPI 创建属于你的第一个 Web 接口吧!
环境准备:安装必要的开发工具

开始前,我们需要准备好开发环境。下面我们将一步步介绍如何安装 Python 和 FastAPI。
第一步:安装 Python
请先确认你已经安装了 Python。你可以打开命令行(Windows 上叫 cmd,Mac 上可以用终端),输入以下命令查看版本:
python --version
输出类似这样说明已经安装成功:
Python 3.8.10
如果没有安装,请前往官网下载并安装最新版 Python:https://www.python.org/downloads/
⚠️ 温馨提示:建议使用 Python 3.7 或更高版本。
第二步:安装 FastAPI 和 Uvicorn
我们使用 pip 来安装所需库。在命令行中依次执行:
pip install fastapi uvicorn
fastapi是主框架uvicorn是运行 FastAPI 的服务器
安装完成后就可以开始写我们的第一个 FastAPI 程序啦!
核心概念:最基础的概念都给你讲明白

刚开始接触 FastAPI 可能会遇到一些陌生的词,比如“路由”、“接口”、“请求方法”等。别怕,我们一个个解释清楚,并配上例子。
1. 路由(Route)是什么?
可以简单理解为:浏览器访问某个网址时,应该返回什么内容。
举个例子:
- 当用户访问
/hello这个地址时,我们应该让他看到一句话:“Hello, FastAPI!”
2. 请求方法(HTTP Method)
浏览器访问页面时使用的动作有很多种。最常见的两个是:
GET:获取信息(例如:读取一篇文章)POST:提交信息(例如:用户注册)
其他还有 PUT(更新)、DELETE(删除)等,但我们初学者从 GET 和 POST 开始就可以了。
3. 编写第一个 Hello World 程序
我们来创建一个文件,叫做 main.py,然后在里面写下如下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def say_hello():
return {"message": "Hello, FastAPI!"}
这段代码做了什么呢?
- 创建了一个 FastAPI 应用对象
app - 使用
@app.get("/hello")定义了一个 GET 接口,访问路径是/hello - 当用户访问这个接口时,就会调用
say_hello()函数,返回一段 JSON 数据
4. 启动服务器
在命令行中进入 main.py 所在目录,运行:
uvicorn main:app --reload
main是文件名(不带.py)app是你在代码中定义的 FastAPI 实例--reload表示自动刷新(当你修改代码后,服务器会自动重启)
启动成功后你会看到:
Uvicorn running on http://127.0.0.1:8000
5. 浏览器访问测试接口
打开浏览器,访问地址:
你应该会看到:
{
"message": "Hello, FastAPI!"
}
🎉 太棒了!你现在写出了人生第一个 FastAPI 接口!
6. 自带的文档界面(Swagger UI)
现在再访问:
你会看到一个漂亮的图形化接口文档页面。在这里你可以直接测试接口,非常方便!
实战项目:做一个天气查询接口(带参数)

学完基本概念之后,我们一起来做个小项目:用 FastAPI 写一个支持查询城市天气的接口。
功能目标:
- 用户可以通过 URL 提交想要查询的城市名,例如
/weather?city=北京 - 接口返回该城市的天气信息(我们暂时用模拟的数据)
步骤一:添加接口函数
修改 main.py 文件,新增一个 GET 接口 /weather:
@app.get("/weather")
def get_weather(city: str):
# 模拟不同城市的天气数据
weather_data = {
"北京": "晴天",
"上海": "多云",
"广州": "雨天"
}
if city in weather_data:
return {"city": city, "weather": weather_data[city]}
else:
return {"error": f"未找到 {city} 的天气信息"}
这串代码的关键点在于:

city: str表示我们接受一个字符串类型的参数- 如果找不到对应城市,就返回错误信息
步骤二:测试接口
启动服务器:
uvicorn main:app --reload
然后访问:
👉 http://127.0.0.1:8000/weather?city=北京
结果应该是:
{
"city": "北京",
"weather": "晴天"
}
换成别的城市试试,如上海、深圳、杭州看看会不会出现错误提示。
步骤三:在 Docs 中测试接口
再次访问:
你会看到 /weather 接口出现在文档中。点击 Try it out,输入城市名,然后点击 Execute,你会看到接口返回的结果。
是不是感觉像一个小工具?其实这就是未来你要做的 API 接口的样子 😄
常见问题解答(FAQ)

❓ Q1:为什么我的接口返回的是 XML 而不是 JSON?
FastAPI 默认只支持 JSON 格式,如果不是可能是你的浏览器或请求方式有问题。推荐使用 Postman 或 Docs 页面来测试接口。
❓ Q2:我修改了代码但是没有效果?
确保你启动服务器的时候加了 --reload 参数。否则需要手动重启服务器才能看到变化。
❓ Q3:报错 “TypeError: 'module' object is not callable” 怎么办?
检查你的代码是否写错了导入语句,比如:
❌ 错误示范:
import fastapi
app = fastapi()
✅ 正确写法:
from fastapi import FastAPI
app = FastAPI()
❓ Q4:运行 uvicorn main:app --reload 报错?
有可能是因为你没有安装 uvicorn,请运行:
pip install uvicorn
❓ Q5:如何让外部设备访问我的接口?
默认只能本地访问,如果你想在局域网中的手机或其他设备访问,可以加上 --host 0.0.0.0 参数:
uvicorn main:app --reload --host 0.0.0.0
然后用你电脑的 IP 地址 + 端口号访问即可,比如:
👉 http://192.168.0.101:8000/hello
学习建议:下一步怎么学?
恭喜你完成了第一次 FastAPI 入门练习!
为了继续提高,你可以沿着以下方向深入学习:
✅ 第一步:学习更多请求方式
POST接收表单或 JSON 提交的数据PUT更新已有数据DELETE删除数据
例如写一个注册用户的 POST 接口:
@app.post("/register")
def register_user(name: str, age: int):
return {"name": name, "age": age, "status": "registered"}
✅ 第二步:连接数据库
学会用数据库存储用户信息或天气数据,而不是写死在代码里。推荐从 SQLite 开始学习。
✅ 第三步:使用 Pydantic 验证数据格式
Pydantic 是 FastAPI 用来验证请求数据格式的强大工具。
✅ 第四步:部署到线上服务器
学习如何把你的 FastAPI 程序部署到互联网上,让更多人能访问。常用平台包括:
- Heroku
- Render
- Vercel
- 阿里云 / 腾讯云
结语
FastAPI 是一个非常适合新手入门后端开发的框架。它简洁、高效、自带文档系统,能让你专注于写业务逻辑,而不是繁琐的配置。
坚持动手实践,每一步都自己敲一遍代码,你很快就能做出自己的 Web 接口服务!
🌟 学习编程最重要的就是“多练”。别怕出错,代码改着改着就对了;经验写着写着就积累了。
祝你学习愉快,早日成为优秀的后端开发者!💪

评论 0