在perl中,DBI模块是与DB交互的标准方式,每个DB供应商都提供自己的DBD模块,供DBI使用。(它有点类似于JDBC。)我不知道python中是否存在类似的模型。在Postgres的情况下,我看到有pg和pgdb模块,其中pgdb遵循DB-API 2.0,而pg不遵循。如果我使用pgdb,我应该期望从遵循db -API2.0的MySQL DB模块获得相同的接口吗?
谢谢!
发布于 2014-05-09 00:08:33
在兼容DBAPI2.0的Python中与Postgres交互的一个流行模块是psycopg2
(http://initd.org/psycopg/docs/index.html)。
这是我在Python代码中经常用来与Postgres交互的代码。我发现它很容易使用,而且它提供了一些很好的附加功能,非常容易添加,比如基于字典的游标(即DictCursor
,其中行在字典中以列名作为键,而不是数组)。
还有Python,您所要做的就是提供一个带名称的游标,psycopg2
会自动为您创建一个默认块大小为2000的服务器端游标,您可以像遍历其他任何Python对象一样遍历该游标,随后的获取操作将在后台透明地进行。
发布于 2014-05-09 00:22:34
是的,Python是Python中与数据库交互的标准接口。但是请注意,DBAPI是一个非常简单的低级接口,它本身并不容易编写数据库查询,当不同的数据库以不同的方式实现SQL时,这些查询可以跨不同的数据库移植。
对于帮助您编写可移植数据库应用程序的更高级别的接口,您可以查看SQLAlchemy。SQLalchemy核心和对象关系管理都提供了一种可移植的数据库查询语言。
https://stackoverflow.com/questions/23553579
复制相似问题