Python 是否有用于 SQL 和 NoSQL 的 ORM

标签 python orm

我正在构建一个我想发布的应用程序,我将用 Python 编写该应用程序。 我不想将任何特定数据库 sql/nosql 的使用锁定到我的应用程序。 我如何设计应用程序或模型层以不强制执行 SQL/NOSQL 方式来存储数据。

有没有同时支持这两种存储的 ORM?我没有找到一个。 通常我会使用 sqlalchemy 来确保人们可以根据需要使用 MySQL/PostgreSQL/MSSQL/等,但是将 NOSQL 添加到图片中似乎比我最初想象的要复杂。

我有一些要求,例如:

  • 我不想强制执行任何存储后端,这是为了确保它不会吓到人们使用该应用程序。
  • 它必须支持数据架构迁移(在安装或升级过程中)

如果您知道我如何构建这些要求,我将不胜感激。 是否可以创建这样的结构:

    +-----+
    + app +
    +-----+
       |
+-------------+
+ Data Access +
+-------------+
        |
+-----------+
+ SQL/NOSQL +
+-----------+

谢谢

最佳答案

不,没有那样的东西。

ORM 或 RDBMS 可以依赖 SQL 作为抽象底层数据库的最低标准。大多数 ORM 都构建在 Python DB API 之上(所有 RDBMS Python 绑定(bind)或多或少地实现了它)。

对于 NoSQL,既没有标准的查询语言也没有标准的驱动程序 API。

所以没有什么比这对两个世界都适用的了。

有一些方法可以为 NoSQL 语言定义通用查询语言。

例如有JsonIQ

http://www.jsoniq.org/

但在现实中对你帮助不大。

关于Python 是否有用于 SQL 和 NoSQL 的 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231691/

相关文章:

python - scipy eigh 中的 SIGSEGV 错误

java - 应该在 equals/hashCode/toString 中使用 @Transient 属性吗?

mysql - 查询 SQL + HDF5 混合体

python - 在窗口中创建动态按钮

Python 2.7.3 errno 13 使用有效 uid 打开 777 权限文件

python - 是否可以从直方图中找到图像的平均颜色?

java - 如何在没有类的情况下使用 Hibernate 复合标识?

python - 如何获取 pygame 中鼠标点击位置的 RGB 值以及如何更改颜色? (Python 3.3.2)

php - 使用自定义 Doctrine 2 数据类型的依赖注入(inject)

php - Doctrine 1.2 类表继承解决方法?