FastAPI:Python界的Express.js,但自带Swagger
·
前端转AI | 写了5年前端,第一次写后端,竟然比想象中简单100倍
为什么选FastAPI?
在Python后端框架里,Django太重(像Next.js),Flask太轻(像原生http模块),FastAPI刚刚好(像Express.js)。
关键是它有三个让前端工程师尖叫的特性:
- 自动生成Swagger文档 — 再也不用手写API文档了
- Pydantic类型校验 — 比Zod还好用
- 原生async/await — 和你在前端写的一样
5分钟写一个CRUD API
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional
app = FastAPI(title="我的第一个Python API")
# 定义数据模型(像TypeScript interface一样)
class Todo(BaseModel):
title: str
completed: bool = False
description: Optional[str] = None
# 模拟数据库
todos = []
# 对比Express: app.get('/todos', (req, res) => res.json(todos))
@app.get("/todos")
async def get_todos():
return todos
# 对比Express: app.post('/todos', (req, res) => {...})
@app.post("/todos")
async def create_todo(todo: Todo):
todos.append(todo.model_dump())
return {"message": "创建成功", "todo": todo}
# 路径参数:对比Express的 :id
@app.get("/todos/{todo_id}")
async def get_todo(todo_id: int):
if todo_id >= len(todos):
return {"error": "不存在"}
return todos[todo_id]
写完这段代码,启动服务器:
uvicorn main:app --reload
然后打开 http://localhost:8000/docs——
我的天,Swagger文档自动生成了!!!
所有API的路径、参数、返回值、示例,全部自动从代码里提取出来。再也不用像以前在前端项目里一个个手写接口文档了。
Express vs FastAPI 完整对照
| 功能 | Express.js | FastAPI |
|---|---|---|
| 路由 | app.get('/path', handler) |
@app.get('/path') |
| 路径参数 | /users/:id |
/users/{user_id} |
| 请求体 | req.body |
函数参数 + Pydantic |
| 参数校验 | 手动 or Joi/Zod | Pydantic自动 |
| API文档 | 手动写Swagger | 自动生成! |
| 异步 | 回调/Promise | async/await |
| 中间件 | app.use() |
依赖注入 |
| 热重载 | nodemon | --reload |
Pydantic = TypeScript + Zod 二合一
这是FastAPI最让我爽的部分。看这个对比:
// 前端:TypeScript + Zod
interface User {
name: string;
age: number;
email?: string;
}
const UserSchema = z.object({
name: z.string(),
age: z.number().min(0).max(150),
email: z.string().email().optional(),
});
# Python:Pydantic一步到位
class User(BaseModel):
name: str
age: int = Field(ge=0, le=150)
email: Optional[str] = None
定义一次,类型检查 + 数据校验 + JSON序列化 + 文档生成 全搞定。
本周感悟
作为前端工程师,我一直觉得后端很神秘。但学了FastAPI之后发现:
后端API开发,本质上就是接收请求 → 处理数据 → 返回响应。和前端的接收props → 处理状态 → 返回JSX,是同一个思维模型。
如果你会写Express,FastAPI对你来说就是换了种语言的Express。而且它自带的类型系统和文档生成,比Express生态还省心。
关注不迷路,我们一起从前端卷向AI 🚀
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)