python - Python中各种数据库的单一API
问题描述
我在使用 Perl DBI 模块方面拥有良好的经验。DBI 模块充当多个数据库(如 Oracle、Postgres 等)的单一 API。
我最近开始研究 Python,我注意到 Python 中的每个数据库都有单独的 API。
以下是我的问题: 1. Python 中没有单一的 DB API吗?2.如果不是,这不是Python的缺点吗?
解决方案
没有与 Perl 的以 DBI 为中心的生态系统等效的 Python。反而:
- DBAPI (PEP 249) 定义了期望关系数据库驱动程序提供的通用低级接口。
- 一些项目,如 SQLAlchemy Core,使用通用 DBAPI 接口对多个驱动程序进行抽象。
由于不同的模块系统,Python 缺乏适当的 DBI 等价物的缺点不如 Perl 中的缺点。假设您将自己限制在一个常见的 SQL 子集和 DBAPI 上,而不是使用特定于驱动程序的扩展,那么切换到不同的驱动程序就像更改导入和更新连接信息一样简单:
- import somedatabase as db
+ import differentdriver as db
在实践中,Python 的 DBAPI 和 Perl 的 DBI 都不能让您随心所欲地切换数据库。然而,Perl 的 DBI 使得编写与多个数据库一起工作的软件变得更加容易。
推荐阅读
- eclipse - 没有 CMSIS 包的 Eclipse 上的 Cortex
- android - 仅使用 Android 模块在 Android Studio 中打开 Flutter 项目
- sql - LINQ 不包含“联合”的定义
- glsl - 为什么在光线追踪器中方向是从球心到光线的原点?
- java - 尝试在空对象引用上调用虚拟方法 'android.view.SurfaceHolder android.view.SurfaceView.getHolder()'
- protractor - 当量角器脚本失败时,我们可以发送一封电子邮件,并在命令提示符中显示电子邮件内容作为错误
- java - 如何使用 Spring MVC 上传 Excel 文件?
- c - 我想将一个数组从我的主要方法传递给我的函数(min),以便可以在函数(min)中计算最小值
- c# - 时间:2019-01-10 标签:c#multiplyopeningwindowsform
- google-analytics - 使用谷歌分析创建用户个人资料