对于刚接触 Python Web 开发的你来说,可能听过 Flask、Django,这些框架能帮你快速搭建网站或后端服务。而今天要介绍的这个新朋友——FastAPI,是近年来最火的 Python Web 框架之一,以“快”、“简单”、“智能”著称。
本篇文章将带你一步一步了解:什么是 FastAPI?它能做什么?怎么开始写一个简单的接口?
一、什么是 FastAPI?
FastAPI 是一个基于 Python 3.6+ 的 现代、快速(高性能)Web 框架,主要用于构建 API 接口服务。它使用了 Python 的类型注解 和 异步功能,让开发更安全、更高效。
一句话介绍就是:
FastAPI = 写起来像 Flask,性能比 Django 快,自动生成文档,开发体验超级棒!
二、FastAPI 能做什么?
FastAPI 最常用的场景是 后端接口开发(REST API),比如:
- 开发前后端分离的 Web 项目
- 搭建 APP 的后端服务
- 接入小程序的接口平台
- 构建微服务系统
- 搭建 AI 模型 API(如机器学习预测服务)
如果你听说过 OpenAPI、Swagger、异步编程(async/await),FastAPI 全都支持!
三、FastAPI 的特点有哪些?
| 特点 | 描述 |
|---|---|
| 🌟 快速 | 使用 Starlette 底层,性能非常高(比 Flask 快几倍) |
| 🧠 智能提示 | 利用类型注解,IDE 可自动补全、检查错误 |
| 📜 自动文档 | 自动生成 Swagger 和 ReDoc 接口文档 |
| ⚡ 异步支持 | 原生支持 async/await,高并发处理能力强 |
| ✅ 数据校验 | 内置 pydantic 自动验证请求数据 |
| 🛠️ 简洁优雅 | 写起来和 Flask 类似,上手非常快 |
四、Hello FastAPI:第一个 API 项目!
我们来写一个简单的接口:
# 文件:main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def read_hello():
return {"message": "Hello, FastAPI!"}
运行方式:
uvicorn main:app --reload
访问地址:
- http://127.0.0.1:8000/hello 👉 会返回 JSON:
{"message": "Hello, FastAPI!"} - http://127.0.0.1:8000/docs 👉 自动生成的 Swagger API 文档
- http://127.0.0.1:8000/redoc 👉 更简洁的 ReDoc 文档
五、接收参数和自动校验
FastAPI 支持通过路径、查询参数、请求体获取数据,还能自动验证。
示例1:路径参数
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
自动提示 item_id 必须是整数。
示例2:查询参数
@app.get("/search")
def search(keyword: str = ""):
return {"result": f"Search for {keyword}"}
请求地址:/search?keyword=fastapi
示例3:请求体 + 自动校验
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
@app.post("/users/")
def create_user(user: User):
return {"message": f"Welcome, {user.name}!"}
只要发送的 JSON 不符合结构(比如缺少 age),FastAPI 会自动报错,并告诉你问题在哪,非常适合初学者。
六、自动生成文档有多香?
访问 /docs,你就能看到:
- 所有接口列表
- 每个接口支持的请求方式
- 输入输出参数说明
- 可以在线测试接口
这意味着你写 API 的同时,文档也自动完成了,不需要再手动写 Swagger!
七、常用配套工具和生态
- Uvicorn:高性能 ASGI 服务器,FastAPI 推荐的运行方式
- Pydantic:数据校验神器,用来定义请求参数结构
- SQLModel / SQLAlchemy:数据库操作库
- Tortoise ORM:异步 ORM,适合 async 项目
- Jinja2 / Jinja:可选模板引擎(FastAPI 也可以返回 HTML)
八、适合谁来学习 FastAPI?
FastAPI 非常适合:
- 有 Python 基础,想入门 Web 开发的程序员
- 想写 API,但觉得 Django 太重、Flask 太自由的人
- 做后端接口服务、数据接口、模型服务的人
- 喜欢写代码时自动提示、智能补全、少报错的人
九、学习建议与下一步
入门 FastAPI 非常简单,以下是你的学习路线:
- 安装环境:
pip install fastapi uvicorn - 写你的第一个
/hello接口 - 学习路径参数、查询参数、请求体处理
- 掌握数据验证(Pydantic)
- 学会部署、连接数据库等进阶操作
十、我们来个小总结
| 特点 | 内容 |
|---|---|
| 名称 | FastAPI |
| 类型 | Python Web 框架 |
| 最大优势 | 快速开发、自动文档、类型安全、高性能 |
| 适合项目 | 接口服务、后端系统、小程序服务、AI模型API 等 |
| 学习门槛 | 非常低,写过 Python 就能上手 |
如果你想用 Python 写接口,又想开发快、性能高、报错少——FastAPI 会是你不二的选择!
1452

被折叠的 条评论
为什么被折叠?



