当前位置:  开发笔记 > 编程语言 > 正文

Python的可行数据库抽象层是什么?

如何解决《Python的可行数据库抽象层是什么?》经验,为你挑选了1个好方法。

我开始参与一个开源项目Gramps,它正在探索将他们的后端从BSDDB切换到关系数据库.无论是SQLite还是MySQL,我们还没有完全决定,甚至可能尝试以有限的容量进行这两项工作.我是一名专业开发人员,但我是python的新手,所以我对当前选择的工具/库并不熟悉.我的任务是研究数据库抽象层.目前正在进行维基讨论以进行比较.对象关系映射器可能很好但不是绝对必要的.虽然我知道这通常是数据库抽象层的同义词.如果包含ORM,则必须提供hock查询,而不必进行太多摔跤.

目前该清单包括:

CouchDB 我还没有调查过这个.

DB-API 这似乎是一个标准的python api,每个db都会创建自己的模块来使用它.甚至BSDDB似乎也写了一篇,但我还没有完全探索过它.这些模块可以互换吗?

SQLAlchemy 这似乎是现在最受欢迎的?但我对蟒蛇世界的接触非常有限.

SQLObject 我还没有研究过这个.

那么人们对python数据库抽象层的看法和建议是什么?



1> S.Lott..:

仔细查看SQLAlchemy.

您可以使用SQLite进行测试和开发.

您可以使用MySQL进行生产 - 基本上不会对您的应用程序进行任何更改.

DB-API虽然被广泛遵守,但具有足够的灵活性:(1)您不会与底层RDBMS中的SQL变体隔离;(2)仍然存在难以隐藏的DB驱动程序特定功能.

另一个好的ORM层是作为Django一部分的ORM .您可以(稍加努力)仅使用Django ORM而无需使用Django Web框架的其余部分.

使用ORM层(SQLAlchemy或SQLObject)优先于DB-API.

为什么?您的模型应该是一个坚实,清晰,经过深思熟虑的OO模型.关系映射应该在对象模型之后排在第二位.SQLAlchemy使这成为一种合理的方法.

"DB抽象层"将在正常的事件过程中发生.实际上,由于DB-API(由SQLAlchemy使用),您提供了两个抽象层:ORM和DB-API.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有