编程本身就是对数据的处理。ORM是学习开发绕不过去的坎儿,今天我们就来聊聊在python的orm框架中,面对Pony和Sqlalchemy该如何选择。我最早学习的框架是django,那时候还是1.x系列主流。感觉django和它的orm的设计理念非常nice,但问题也很明显:深度绑定,单独使用很难。后来逐渐接触到其他的orm框架,比如 peewee,pony, sqlalchemy.其中,能够提供和django同样丰富功能的目前看来只有sqlalchemy,几乎你能想到的它都准备好了或者只需要简单的封装就能实现。django的orm和sqlalchemy都是相对重型的orm框架。你可以把sqlalchemy看作能独立使用django的orm也可以。peewee和pony都是相对轻型的ORM框架。
我自己的orm的学习路线是 django-orm–>sqlalchemy --> peewee–> pony–>pony + sqlalchemy.目前是sqlalchemy和pony并用,根据开发场景做选择。这中间四次转向学习的动机如下:
从django-rom到sqlalchemy: 寻找一款无需和django绑定的django-orm的替代品。
从sqlalchemy 到 peewee : sqlalchemy 太繁琐了。想少敲一些代码。我需要一款sqlalchemy的轻量化替代品。
从peewee到pony: peewee的设计有一些我不喜欢的地方,特别是在复杂的关系表上的。而且我厌倦了无穷尽的重复学习。我需要一款学习成本低轻量级ORM框架。
pony + sqlalchemy 双持: 相对sqlalchemy 的传统设计思维,pony里面太多黑魔法了,在嵌入复杂异步框架,打包编译和跨语言调用上容易出现兼容性问题。因此,在这些场景下,还是需要sqlalchemy 这个老大哥出来坐镇。
四款orm我只有在pony和sqlchemy上面比较有经验,而前者比后者大概又多了5-6年的生产经验。所以我现在只能拿pony和sqlchemy做做比较
- 学习成本
pony的优势非常明显,需要的学习时间

在Python ORM框架中,Pony和SQLAlchemy各有优势。Pony以其低学习成本和轻量级特性吸引开发者,适合新手和追求效率的web开发者。而SQLAlchemy功能更全面,适合需要高级特性的开发者,尤其是在复杂应用和QT开发中。
768

被折叠的 条评论
为什么被折叠?



