在perl中,DBI模块是与DB交互的标准方式,其中每个DB供应商都提供DBI使用的自己的DBD模块。 (它有点类似于JDBC。)我无法弄清楚python中是否存在类似的模型。对于Postgres,我看到有pg和pgdb模块,其中pgdb遵循DB-API 2.0而pg不遵循。我应该关心吗?如果我使用pgdb,我是否应该从MySQL数据库API 2.0模块中获得相同的接口?
谢谢!
答案 0 :(得分:1)
与Python中的Postgres交互的流行模块是psycopg2
(http://initd.org/psycopg/docs/index.html)。
这是我在Python代码中用来与Postgres进行交互的那个。我发现它很容易使用,它提供了一些很容易添加的额外功能,例如基于字典的游标(即DictCursor
,其中行位于字典中,列名为键,而不是到一个数组)。
还有named cursors
,您需要做的就是提供一个带有名称的游标,psycopg2
会自动为您创建一个服务器端游标,其默认块大小为2000,你可以像任何其他Python对象一样迭代,后续的提取在后台透明地进行。
答案 1 :(得分:1)
是的,Python DBAPI 2.0是用于在Python中与数据库交互的标准API。但请注意,DBAPI本身就是一个非常简单的低级接口,当不同的数据库以不同的方式实现SQL时,它不容易编写可在不同数据库中移植的数据库查询。
对于帮助您编写可移植数据库应用程序的更高级别界面,您可以查看SQLAlchemy。 SQLalchemy核心和ORM都提供了一种以便携方式查询数据库的语言。