前端转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 🚀
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐