我在使用Perl DBI模块方面拥有丰富的经验。DBI模块充当Oracle,Postgres等多个数据库的单一API。
我最近开始研究Python,我注意到Python中每个数据库都有单独的API。
以下是我的问题: 1. Python中没有单个DB API 吗? 2.如果不是,这在Python中不是不利吗?
答案 0 :(得分:4)
没有Python等效于Perl的以DBI为中心的生态系统。相反:
由于模块系统不同,与Perl相比,Python缺少适当的DBI等效项的缺点更少。假设您将自己限制在公共SQL子集和DBAPI中,而不是使用特定于驱动程序的扩展,那么切换到其他驱动程序就像更改导入和更新连接信息一样简单:
- import somedatabase as db
+ import differentdriver as db
实际上,无论是Python的DBAPI还是Perl的DBI都不能使您随心所欲地切换数据库。但是,Perl的DBI使编写适用于多个数据库的软件变得更加容易。