FastAPI入门:Python后端开发新手指南

事务别乱提交
2025-12-15 14:03
阅读 692

——一个被裁老广程序员的自救之路

作者:阿强,35岁,广州西关人,前大厂Java后端,现自由接外包的全栈“打工人”


去年十月的一个雨夜,我坐在珠江新城某写字楼18楼的会议室里,HR递来一杯温水,语气平静地说:“阿强,公司战略调整,你的岗位……被优化了。”

那天是2023年10月17号,周四。窗外小蛮腰的灯光在雨幕中模糊成一片橙红。我拿着那张薄薄的N+1补偿单(税后4万8),走出大厦时,手有点抖。

回家路上,老婆发来微信:“今晚煲了老火汤,你几点到?”
我没敢回。
因为我知道,下个月房贷8200,房租3500(没错,我和老婆还租着天河的小两房),孩子幼儿园学费4600……而我的简历,已经三年没更新了。


从Springboot到FastAPI:不是转行,是求生

我在上一家公司干了五年Java后端,主力框架就是Springboot。每天写Controller、Service、Mapper,配YAML,调MyBatis,跑JUnit测试……代码写得熟到闭眼都能敲。但问题也来了——市场变了。

裁员潮一浪接一浪,招聘网站上“Java高级工程师”要求清一色写着:“精通微服务、高并发、分布式架构、云原生……”,而薪资却从原来的22k悄悄降到了15k,甚至更低。更扎心的是,HR看到我35岁的年龄,眼神都飘忽了。

有天晚上,我翻着GitHub Trending,无意点进一个叫 FastAPI 的项目。Star数暴涨,文档清爽,示例代码简洁到让我怀疑人生:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

就这?启动服务,浏览器打开 http://localhost:8000,直接返回JSON。不用写DTO,不用配XML,连Swagger UI都是自动集成的!

我愣住了。
这不就是我梦寐以求的“轻量级后端”吗?


老广程序员的第一次FastAPI尝试

说干就干。
上周五晚上十点,娃睡了,老婆在追《繁花》,我泡了壶普洱,打开VSCode,新建了个文件夹:/home/ahqiang/fastapi-demo

第一步,装环境:

pip install fastapi uvicorn[standard]

第二步,写个最简单的接口,模拟查用户信息:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    id: int
    name: str
    email: str

@app.get("/users/{user_id}")
def get_user(user_id: int):
    # 模拟数据库查询
    return User(id=user_id, name="阿强", email="ahqiang@gz.com")

第三步,运行:

uvicorn main:app --reload

浏览器输入 http://localhost:8000/users/123,秒出结果:

{
  "id": 123,
  "name": "阿强",
  "email": "ahqiang@gz.com"
}

更绝的是,访问 /docs,自动生成交互式API文档!连Postman都不用开。

那一刻,我差点哭出来。
不是感动,是解脱——原来写后端,可以这么轻松。


为什么FastAPI让我这个Java老炮心动?

我知道很多人会说:“FastAPI只是玩具,企业级还得靠Springboot。”
这话以前我也信。但在接外包的现实里,快、准、稳才是王道。

我最近接的一个私活:帮一家荔湾茶楼做线上预约系统。老板预算2万,工期两周。如果用Springboot,光搭环境、配Druid、整合Redis、写异常处理,就得三天。但用FastAPI:

  • 一天搞定用户登录(用JWT)
  • 两天写完预约、取消、查询接口
  • 自带异步支持,高峰期也不怕(茶楼周末爆满!)
  • 部署?一行Docker命令搞定

而且,Python生态对AI、数据分析、自动化脚本的支持太香了。我顺手加了个“客流预测”功能,用scikit-learn训练了个小模型,老板直呼“高科技”!

反观Springboot,虽然强大,但太“重”了。就像开一辆坦克去买菜——能到,但油耗高、停车难、启动慢。


代码人生的转折点:不是技术,是心态

其实,学FastAPI的过程并不顺利。
刚开始我总想把它“Java化”:非要搞三层架构,非要抽象BaseService,非要写200行配置类……结果代码又臭又长。

直到有一天,我看了FastAPI作者Sebastián Ramírez的一句话:

“FastAPI is not about replacing Django or Flask. It’s about making APIs as simple and intuitive as possible.”

我才醒悟:工具是为了服务业务,不是为了满足技术洁癖

现在的我,不再执着于“我是Java程序员”这个标签。客户要什么,我就用最合适的工具交付什么。
有时候是FastAPI + Vue做全栈,
有时候是用Node.js写个小爬虫,
甚至上周还帮邻居奶茶店写了个Excel自动排班脚本(用pandas,30分钟搞定)。

代码人生,不该被语言或框架绑架


给想学FastAPI的新手几点建议

如果你和我一样,是从Java/Springboot转过来的,或者刚入行想找条快车道,听句实在话:

  1. 别纠结“是否企业级”——先跑通第一个API,比争论架构重要一百倍。
  2. 善用Pydantic:这是FastAPI的灵魂。数据校验、序列化、文档生成,全靠它。比Java的Bean Validation简洁太多。
  3. 异步不是必须,但值得学async def + await 在IO密集型场景(如调第三方API)提升巨大。
  4. 部署别怕Docker:一个Dockerfile,三行命令,服务器上直接跑。比Tomcat部署省心多了。
  5. 中文文档很全:感谢国内开发者,FastAPI中文网(fastapi.tiangolo.com/zh)质量极高。

最重要的是——动手写
别光看教程,今晚就建个虚拟环境,敲那几行“Hello World”。你离接单赚钱,可能只差一个API的距离。


结语:在不确定的时代,做确定的事

现在,我每月接2-3个小项目,收入不稳定但自由。上个月赚了1万8,这个月可能只有9千。但我不焦虑了。

因为我明白了一件事:技术人的价值,不在你用了多“高级”的框架,而在你能不能用最短路径解决问题

FastAPI对我而言,不只是一个Python框架,更是一次“减负”——减掉对大厂光环的执念,减掉对复杂架构的迷信,减掉“35岁就该被淘汰”的恐惧。

前几天,老婆问我:“你还想回大厂吗?”
我说:“不想了。我现在写代码,是为了生活,不是为了KPI。”

窗外,西关的老榕树沙沙作响。
我的终端里,FastAPI服务正在安静运行。
请求来了,响应出去。
简单,可靠,真实。

这,就是我的代码人生。


后记:如果你也在转型路上迷茫,不妨试试FastAPI。它不会让你一夜暴富,但可能帮你接到第一单外包,养活自己,找回尊严。
技术无贵贱,能解决问题的,就是好技术。
—— 阿强,于广州恩宁路出租屋,2024年6月

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝