Python,初学者的问题!存储库或对象持久化?

2024-09-30 06:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个经验丰富的.Net开发人员,正在尝试编写一些Python代码。在我参与的一个项目中,我们有一个服务层(services layer),它是一组抽象功能的类,以及一个django web应用程序,它在processservices(只是类)中使用这些类。在

我已经创建了一个存储库层,并确保与数据库的所有交互都通过这个存储库的服务层进行。我们有一个面向文档的数据库,因此我们没有通常的对象关系垃圾。 在最近的一次代码评审中,一位本应熟悉python的开发人员回避了这一点,并评论说这不是python的工作方式。他指出,python开发人员习惯于在对象实例本身上使用save和delete方法(而且不太使用repository模式),这会使希望为我们的OSS项目做出贡献的python开发人员感到困惑。Python开发者,你的观点?你会困惑吗?在

编辑:这不是django代码,而是由django应用程序调用的代码(它是一个进程内服务层)


Tags: 项目对象django代码功能layerweb数据库
3条回答

Django的ORM在对象上提供了save()和{}方法。另一方面,SQLAlchemy有一个所谓的session,您可以在其中添加或删除对象。在

这两种方法都很受欢迎,所以我想说这两种方法在受欢迎程度上是差不多的。然而,在Django应用程序中,遵循Django约定可能更可取,除非您有充分的理由不这样做。在

也许这是一个Django模式,但绝对不是Python模式。 也就是说,如果您的模块的目标受众是Django开发人员,我建议您尽可能遵循Django哲学及其相关模式。在

我记得最好的Django的模型包括save()delete()方法,因此您可以专门处理对象,而不是与数据库连接对象交互。我不知道这是一种即时的Python方式,但我确信它是一种普遍的Django模式。在

如果有人告诉我“这是Django代码”,但代码与Django的工作方式不同,那可能会令人困惑。在

相关问题 更多 >

    热门问题