Python Behave 框架写的自动化测试,有必要上 ORM 吗?

2018-12-24 11:54:13 +08:00
 warcraft1236
如题,最近在看 PonyORM,感觉测试的代码中加入 ORM 有很多不方便的地方啊,也可能是不会用,求教
1788 次点击
所在节点    Python
3 条回复
xpresslink
2018-12-24 13:37:26 +08:00
ORM 最大的好处是:摆脱了裸写 SQL 造成的对特定数据库方言的依赖,便于在不同数据库之间迁移或部署。
只有一两个表的情况用 ORM 没有太大意义体现不出来什么优势。大量的表和关系要管理时候用起来才值得。还有就是多人合作的项目中便于统一接口集中控制。
目前建议你用 sqlalchemy,这种冷门的 ORM 最好别学,大概率耽误功夫。
warcraft1236
2018-12-24 19:05:57 +08:00
@xpresslink sqlalchemy 听说非常难用,PonyORM peewee 稍微简单点
xpresslink
2018-12-25 10:28:05 +08:00
@warcraft1236 要说 python 的 ORM 库里面 sqlacchemy 基本上是事实标准,你要是用的生产环境以后也有很多需求,非它莫数, 能很好地支持事务和分表就这两项其它的 ORM 就没的比。Pony 和 peewee 之类的只是小玩具。而且 sqlalchemy 在其它好几语言都有实现比如 golang 之类的。
另一个好用的 ORM 就算是 Django 内置带的那个了,其实是从 RoR 那里克隆来的用的 Active Record 方式,上手容易文档丰富,用起来比较直观,不象 sqlachemy 那么拧巴。因为 sqlachemy 用的 data mapper 实现,必须使用另外的持久层来保持与数据库的交互,好处是代码和数据库也是完全隔离的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX