适用于Python的各种数据库的单一API

时间:2018-07-31 06:03:58

标签: python database api perl

我在使用Perl DBI模块方面拥有丰富的经验。DBI模块充当Oracle,Postgres等多个数据库的单一API。

我最近开始研究Python,我注意到Python中每个数据库都有单独的API。

以下是我的问题: 1. Python中没有单个DB API 吗? 2.如果不是,这在Python中不是不利吗?

1 个答案:

答案 0 :(得分:4)

没有Python等效于Perl的以DBI为中心的生态系统。相反:

  • DBAPI(PEP 249)定义了关系数据库驱动程序希望提供的通用低级接口。
  • 诸如SQLAlchemy Core之类的某些项目使用通用的DBAPI接口通过多个驱动程序进行了抽象。

由于模块系统不同,与Perl相比,Python缺少适当的DBI等效项的缺点更少。假设您将自己限制在公共SQL子集和DBAPI中,而不是使用特定于驱动程序的扩展,那么切换到其他驱动程序就像更改导入和更新连接信息一样简单:

- import somedatabase as db
+ import differentdriver as db

实际上,无论是Python的DBAPI还是Perl的DBI都不能使您随心所欲地切换数据库。但是,Perl的DBI使编写适用于多个数据库的软件变得更加容易。