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

你可能听说过一些做网站的名词,比如“前端”、“后端”,或者是“服务器”。简单来说:
- 前端是你在网页上看到的内容(比如按钮、图片)。
- 后端则是处理这些内容背后的逻辑(比如登录验证、数据存储)。
而我们今天要学习的 FastAPI,就是一个用来做“后端”的工具。它可以帮助我们快速搭建一个提供数据服务的 Web 系统,比如微信小程序的后台接口、电商网站的订单系统等。
FastAPI 是使用 Python 语言开发的一种现代化 Web 框架,它最大的特点是:
- 快速开发
- 自动生成 API 文档
- 支持异步操作
- 易于理解和维护
如果你对这些术语还不太明白没关系,下面我们会一步步带你了解。
环境准备:搭建你的第一个 FastAPI 开发环境

开始写代码前,我们先准备好开发环境。整个过程不需要太多复杂操作,跟着步骤来就可以搞定!
1. 安装 Python
首先确保你已经安装了 Python。推荐使用 Python 3.8 及以上版本。
你可以通过命令行输入以下命令查看是否安装成功:
python --version
如果返回类似 Python 3.9.x 的信息,说明安装好了。
如果没有安装,请去 https://www.python.org/downloads/ 下载并安装。
2. 安装 FastAPI 和 Uvicorn
FastAPI 本身是一个库,我们需要用 pip 来安装它,以及配套的服务启动器 Uvicorn。
打开命令行或终端,运行:
pip install fastapi uvicorn
这样就安装完成了!👏
3. 测试环境是否安装正确
我们来写个最简单的程序测试一下。
新建一个文件叫 main.py,在里面写入以下代码:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World!"}
然后在命令行中运行:
uvicorn main:app --reload
你会看到类似下面的输出:
INFO: Will watch for changes in these directories: ['your-path']
INFO: Uvicorn running on http://127.0.0.1:8000
现在打开浏览器访问:http://127.0.0.1:8000
你将看到如下内容:
{"Hello": "World!"}
恭喜!你的第一个 FastAPI 接口已经跑起来了!
核心概念:FastAPI 中那些听起来很专业的东西

学编程就像学开车,有些东西一开始听着像黑话,但其实很简单。下面我们来解释几个 FastAPI 中的核心概念。
📌 1. 什么是 API?
API 就像菜单。假设你在餐厅点菜,你是用户,厨房是服务器。中间传菜的就是 API —— 它接收你的请求,再把结果返回给你。
举个例子,你用微信登录某个应用时,这个应用就会通过某个 API 去请求微信是否允许你登录。
在 FastAPI 中,我们定义一个个 API 接口,例如 /hello 或者 /users/login。
📌 2. HTTP 请求方法:GET 和 POST
这两个是最常见的请求类型:
| 方法 | 含义 | 示例 |
|---|---|---|
| GET | 获取数据 | 访问首页、读取文章 |
| POST | 提交数据 | 注册账号、上传文件 |
在 FastAPI 中,我们可以这样写:
@app.get("/greet")
def greet_get():
return {"message": "你好,这里是GET方法"}
@app.post("/login")
def login_post():
return {"status": "登录成功"}
📌 3. 路由(Route)
路由就是路径,决定哪个 URL 对应哪个函数。
比如:
@app.get("/user/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
这里 /user/{user_id} 是一个动态路由,访问 /user/123 时,user_id=123。
📌 4. 查询参数与请求体
查询参数(Query Parameters)
当你在搜索框里输入“手机”,URL可能会变成:/search?q=手机,这里的 q 就是查询参数。
from fastapi import FastAPI
@app.get("/search")
def search(q: str):
return {"search_term": q}
请求体(Request Body)
当你要提交一段较复杂的数据时,通常用 POST 方法,并通过请求体传输 JSON 数据。
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
def create_item(item: Item):
return {"item_name": item.name, "price": item.price}
注意:这里用了
pydantic,这是 FastAPI 强大的原因之一,它会自动校验数据类型是否正确!
✅ 总结:核心知识点一览表
| 概念 | 解释 | 实际用途 |
|---|---|---|
| API | 应用之间通信的桥梁 | 从前端拿到数据、给前端返回数据 |
| GET/POST | 请求方式 | 获取数据 / 提交数据 |
| 路由 | URL 地址和函数对应关系 | 决定访问哪个功能 |
| 查询参数 | URL 中的参数 | 过滤、搜索等 |
| 请求体 | 发送复杂数据(如 JSON) | 提交注册信息、订单数据等 |
实战项目:做一个最简单的博客接口
纸上得来终觉浅,我们动手做个小小项目吧!目标:创建一个可以添加文章、查看所有文章的小型博客接口。
第一步:初始化项目结构
新建一个文件夹叫做 blog_api,在这个文件夹中创建一个文件:main.py
第二步:定义模型(数据格式)
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
# 定义一篇文章的结构
class Article(BaseModel):
title: str
content: str
# 临时存储数据用的列表
articles = []
@app.get("/articles", response_model=List[Article])
def get_articles():
return articles
@app.post("/articles")
def add_article(article: Article):
articles.append(article)
return {"message": "文章已添加"}
第三步:运行项目
命令行中执行:
uvicorn main:app --reload
访问 http://localhost:8000/docs,你会看到自动生成的交互式 API 文档!
在这里你可以:
- 点击
GET /articles查看现有文章列表 - 点击
POST /articles添加新文章(点击“Try it out”输入标题和内容)
✅ 至此,你的第一个小型博客后端接口完成啦!
常见问题:初学者常遇到的坑和解决方法
❓1. 安装时提示模块找不到,怎么办?
错误示例:
ModuleNotFoundError: No module named 'fastapi'
👉 解决办法: 请确认你已经安装了 fastapi,命令如下:
pip install fastapi uvicorn
如果使用的是虚拟环境,请确认激活状态。
❓2. 启动时提示 “Error loading ASGI app”
错误原因可能是文件名或者变量名拼错了,比如你写了:
uvicorn appp:app --reload
但实际上应该是 main.py 文件里才有 app 变量。
👉 修改为正确的命令即可:
uvicorn main:app --reload
❓3. 返回中文乱码?
FastAPI 默认返回 JSON 格式,支持中文,但有时候前端展示有问题。
解决方案是确保返回值是标准字符串即可。
✅ 正确做法:
return {"message": "你好,世界"}
❓4. 如何查看我的 API 是否正常?
FastAPI 自带了一个很棒的功能:交互式文档!
只需访问:
http://127.0.0.1:8000/docs
你就能直接测试你的接口,包括发送请求、传递参数、查看响应!
学习建议:接下来怎么深入学习?

掌握了 FastAPI 最基本的使用之后,你可以沿着以下几个方向继续提升自己:
🧪 1. 数据库连接
目前我们只是用内存中的列表保存文章,一旦重启服务器数据就没了。下一步你可以学习如何连接数据库(比如 SQLite、MySQL),真正地保存数据。
推荐学习包:SQLAlchemy + databases(FastAPI官方推荐)
🔐 2. 用户认证与权限控制
你想让不同用户有不同的访问权限吗?比如管理员能删除文章,普通用户只能查看?这就涉及到用户登录、令牌管理等内容。
关键词:OAuth2、JWT、身份验证
⚙️ 3. 部署上线
写完的程序不光能在本地测试,也可以发布到互联网上让别人使用。
部署常用工具:
- 使用 Gunicorn + Nginx + Ubuntu 部署
- 云平台部署(如阿里云、Heroku)
🛠️ 4. 工程化与进阶实践
随着项目变大,你需要更好地组织代码结构,比如按功能划分目录、使用依赖注入、日志记录等等。
推荐资源:
- FastAPI 官方文档:https://fastapi.tiangolo.com/
- RealPython 教程:https://realpython.com/tutorials/fastapi/
结语:坚持练习,才能更进一步!
刚接触后端开发的同学可能会觉得有点难,但记住一句话:
编程不是靠看懂,而是靠多写、多练。
每学会一个接口的编写,你就离独立开发一个完整的项目更近了一步。希望这篇教程能为你打开后端开发的大门!
如果你喜欢这样的教学风格,欢迎关注我后续发布的更多零基础系列教程:从数据库、Web安全,到真实项目实战,一路陪着你成长!
🚀 加油吧,未来的开发者!

评论 0