Python通用数据库接口?
有没有一种通用的数据库前端可以让Python使用,就像Perl的DBI那样?我知道Python有DB-API,但那些不同的包让我有点烦。
2 个回答
2
那么...DBAPI 就是这个前端:
这个API的设计目的是让不同的Python模块在访问数据库时有相似的表现。这样做的目的是希望能让这些模块更容易理解,代码在不同数据库之间也能更好地移植,同时让Python能够连接更多种类的数据库。
至少对我来说,它一直都很好用,你能详细说说你遇到的问题吗?
3
据我所知,没有一个Python模块可以同时支持多种数据库的DB-API,这其实是故意设计的:如果你不打算使用某些功能,为什么还要引入这些不必要的功能,并且可能还需要安装底层数据库的库呢?你可以对这个设计决定提出不同的看法,但事实就是这样。另一方面,DB-API试图确保每个数据库适配器提供的接口是相同的(或者非常接近)。此外,还有一些ORM模块,比如SQLAlchemy,它们提供了更高级的抽象层。不过,它们仍然需要底层的DB-API模块。
需要注意的是,从Python 2.5开始,标准库中包含了一个SQLite3 DB-API,也就是说,相关功能是自带的。