Python 对象的完全抽象数据源?

Python 对象的完全抽象数据源?,python,sqlalchemy,Python,Sqlalchemy,如果这个问题太笼统,或者我还没有通过搜索找到解决方案,我会提前道歉 我使用web.py在一个简单的REST服务器上工作,我的后端是mysql,所以我使用了sqlalchemy声明性对象。一切都运行得非常好,但我发现自己非常依赖于使用sqlalchemy当时支持的数据库。如果我想切换到mongodb或其他东西,我的特定于sqlalchemy的声明性类必须重写或废弃 我想知道是否有任何项目(或者更一般地说,设计模式的一个示例)允许您插入任何后端。我相信从sql后端切换到mongo后端(例如)需要相当

如果这个问题太笼统,或者我还没有通过搜索找到解决方案,我会提前道歉

我使用web.py在一个简单的REST服务器上工作,我的后端是mysql,所以我使用了sqlalchemy声明性对象。一切都运行得非常好,但我发现自己非常依赖于使用sqlalchemy当时支持的数据库。如果我想切换到mongodb或其他东西,我的特定于sqlalchemy的声明性类必须重写或废弃

我想知道是否有任何项目(或者更一般地说,设计模式的一个示例)允许您插入任何后端。我相信从sql后端切换到mongo后端(例如)需要相当多的编码,但是如果有任何众所周知的策略来最小化痛苦,我会非常好奇地听到它们


非常感谢您的回答

这可能有助于您为MongoDB选择ORM:

我发现很难相信,在ORM的保护下,从关系数据库到NoSQL数据库的任何转换都能无缝地用于任何非平凡的项目。然而,如果您真的需要在某个时候进行迁移,那么有一些orm具有与SQLAlchemy相似的语义(Ming看起来很有希望,但我还从未使用过它)

你可能想看看这张照片。简而言之,SQL数据库可以让您走得更远

此外,在需要扩展时,还可以考虑一下是否要使用ORM


您也可以同时使用这两个字段:SQL数据库(无论您需要什么事务)、用于日志记录的NoSQL数据库、事件以及NoSQL数据库擅长的其他字段。

这可能有助于您为MongoDB选择ORM:

我发现很难相信,在ORM的保护下,从关系数据库到NoSQL数据库的任何转换都能无缝地用于任何非平凡的项目。然而,如果您真的需要在某个时候进行迁移,那么有一些orm具有与SQLAlchemy相似的语义(Ming看起来很有希望,但我还从未使用过它)

你可能想看看这张照片。简而言之,SQL数据库可以让您走得更远

此外,在需要扩展时,还可以考虑一下是否要使用ORM


您也可以同时使用这两种数据库:SQL数据库(无论您在哪里需要事务)、用于日志记录的NoSQL数据库、事件以及NoSQL DBs擅长的其他字段。

嘿,谢谢您的回答。我想我的问题更多:“有没有一种已知的方法可以让模型完全不知道数据来自何处?某种模型数据接口模式?”不过,我想我可能想得太多了,SQL足以解决我在不久的将来遇到的任何问题,特别是考虑到你的上一句话。再次感谢!嘿,谢谢你的回答。我想我的问题更多:“有没有一种已知的方法可以让模型完全不知道数据来自何处?某种模型数据接口模式?”不过,我想我可能想得太多了,SQL足以解决我在不久的将来遇到的任何问题,特别是考虑到你的上一句话。再次感谢!