首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有提供“清晰”模型架构的python ORM?

有没有提供“清晰”模型架构的python ORM?
EN

Stack Overflow用户
提问于 2020-07-07 15:41:05
回答 1查看 467关注 0票数 1

我有相当丰富的PHP和c#开发经验,我正在考虑学习python。我想练习数据存储和检索,当我看到大多数python ORM是如何处理模型层的时候,我哭了。

在python ORM中,模型实体做很多工作似乎是很正常的--它不仅是一个数据容器(我认为它应该是这样的),而且对于某些库来说,它还持有数据库连接(peewee -是的,您可以使用没有数据库的实体并在以后绑定它,但您仍然必须使用该实体进行数据检索……)或者具有它们从其继承的一些公共元数据对象(declarative_base in SQLalchemy)。在某些库中,entity类用于data retrievalfilteringstoragedeletion。在django-ormtortoise-ormpony-orm等其他ORM库中也可以看到类似的概念。

这赋予了实体类太多的责任,并将实体(以及整个数据服务层)与特定的库实现绑定在一起。它还打破了单一责任原则,概念分离,使测试变得更加困难,使依赖注入变得非常不可用,可能还有许多其他我现在无法想到的事情。尽管上面提到的库通常都很好,可以做你需要的所有事情,但我还是不能接受这个基本的东西……

我希望看到一些管理器/数据服务层,负责数据存储和检索。实体将是非常普通的对象,对数据库层一无所知(比如sqlite-netdoctrine实体)。在python中有这样的东西吗?为什么这样的(反)模式在python库中如此常见?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-07-07 21:27:27

peewee的作者在这里。正如您所注意到的,Peewee有一个查询构建器API,它没有耦合到底层数据库连接,但这仅仅是构建更紧密耦合的模型层的基础。据我所知,99.99%的人都在使用它。对我来说,我关注的是:我在这里尝试做什么,以及我如何用最少的样板或配置尽可能简单地完成它。这遵循80-20规则(尽管对于Peewee用户来说,它可能更接近99-1),其中暴露的API与用户试图做的事情完全一致。从我收到的反馈来看,似乎其他人也有类似的目标,并且喜欢Peewee的简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62770329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档