联创圈上线运营了一段时间,今天开始记录开发日记,分享我们的技术决策和产品思考。
为什么选Flask?
在项目立项时,我们在Django和Flask之间做了对比:
Django的优势:
- 自带Admin后台,开箱即用
- ORM成熟,数据库迁移方便
- "batteries included",功能齐全
Flask的优势:
- 轻量灵活,想用什么组件自己选
- 学习曲线平缓,上手快
- 对小团队更友好,不需要学一套庞大的约定
最终选择Flask的原因很简单:团队规模小,需要快速迭代。
Django的Admin虽然好用,但定制化成本很高。Flask虽然没有自带Admin,但我们用Flask-Admin + 自定义模板,反而能做出更贴合业务需求的后台。
实际体验
用了大半年,Flask的选择是对的:
1. 迭代速度快:加一个新功能模块,从路由到模板,半天就能上线
2. 灵活度高:想加Redis缓存、Celery异步任务,即插即用
3. 代码可控:没有框架的"魔法",出了问题容易排查
当然也有痛点:
1. 项目结构需要自己规划:没有Django的约定,团队大了容易混乱
2. 数据库迁移要自己搞:我们直接用SQLAlchemy + 手动迁移,不如Django的makemigrations方便
3. 后台要自己搭:虽然Flask-Admin能用,但定制工作量不小
总结
技术选型没有标准答案,关键是看团队、项目阶段、迭代节奏。
如果你是1-3人的小团队,需要快速验证产品,Flask是很好的选择。
如果你是5人以上的团队,做的是中大型项目,Django的约定式开发可能更合适。
联创圈目前5万行代码,Flask依然能扛住。后续如果要做微服务拆分,Flask蓝图机制也很方便过渡。
后续会继续分享联创圈的开发过程,包括数据库设计、排序算法、部署方案等。关注专栏不迷路。
登录后才能发表评论
立即登录