FastAPI入门:Python后端开发新手指南(以及我为啥没选Go)
上周五晚上11点,我瘫在成都春熙路附近出租屋的沙发上,手指还在机械地敲着键盘,屏幕上是一个被产品经理临时加需求、明天就要上线的内部运营工具。Deadline压得人喘不过气,而我还在纠结用 Flask 还是 Django 写这个新接口——不是技术选型困难症,而是真的觉得这两个老伙计有点“重”了。
就在这时,我突然想起一个月前刷 Hacker News 时看到的一句话:“FastAPI 是 Python Web 框架里最像 Go 的那个。”
我一愣:Go? 那个被大厂面试题狂轰滥炸、运维同事天天吹“部署简单性能高”的语言?
说起来,我其实是个“AI辅助编程重度患者”。从 ChatGPT 到 Claude,再到最近疯狂安利给同事的 Cursor,我的 IDE 已经快变成 AI 的副驾驶舱了。尤其是 Cursor,它理解上下文的能力简直离谱——你写一半注释,它能把整段逻辑补全;你改个接口名,它连 Swagger 文档都自动更新了。所以当我决定尝试 FastAPI 时,第一反应就是:“这玩意儿跟 Cursor 搭配会不会起飞?”
事实证明,会。
为什么不是 Go?聊聊后端框架的“性价比”
先别急着喷我“Python 性能差”,咱们理性讨论。最近跳槽面了几家公司,不管是字节还是本地一些 SaaS 初创,后端岗的面试题里十有八九会问:
“你们服务用什么语言写的?为什么选它?Go 和 Python 的取舍点在哪?”
这个问题背后,其实是业务场景 vs 技术理想主义的永恒博弈。
| 维度 | Go | FastAPI (Python) |
|---|---|---|
| 开发速度 | 中等(强类型但模板代码多) | 极快(动态+类型提示+自动生成文档) |
| 学习曲线 | 陡(goroutine/channel/内存模型) | 平缓(熟悉 Python 即可上手) |
| 生态成熟度 | 高(微服务、云原生首选) | 快速追赶(Pydantic + Uvicorn + SQLAlchemy) |
| 调试体验 | 一般(工具链偏底层) | 极佳(IPython、pdb、AI 辅助友好) |
| 运维部署 | 简单(单二进制文件) | 稍复杂(需虚拟环境,但 Docker 化后无感) |
| 适合场景 | 高并发网关、实时系统 | API 服务、数据中台、MVP 快速验证 |
我在成都这边一家做 SaaS 的公司,主要给本地餐饮连锁做运营后台。我们的核心诉求不是每秒百万请求,而是快速迭代、接口清晰、文档自动生成、前后端联调不吵架。
上周那个紧急需求,就是一个给运营同事用的数据导出接口——需要传入门店ID、时间范围,返回Excel。如果用 Go,光是定义 struct、写 handler、处理 JSON 序列化就得半小时;而用 FastAPI,配合 Pydantic 的数据校验,加上 Cursor 自动生成 CRUD 逻辑,20分钟搞定,还自带 Swagger UI。
运维大哥看了部署脚本直呼内行:“哟,这次没让我写一堆 supervisord 配置?”
FastAPI 到底香在哪?一个真实项目拆解
场景:给运营同事写个“用户行为分析”API
需求很简单:
- 输入:
start_date,end_date,store_id - 输出:JSON 格式的用户访问统计
- 要求:参数校验、错误提示友好、支持分页
第一步:装包 & 起服务(比泡面还快)
pip install fastapi uvicorn[standard] pydantic python-dotenv
然后写个 main.py:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "成都打工人"}
启动:
uvicorn main:app --reload --port 8000

评论 0