我正在Python中创建一个基本的数据库实用程序类。我正在将一个旧模块重构为一个类。我现在正在研究一个executeQuery()
函数,我不确定是保留旧的设计还是改变它。这里有2种选择:Python中的设计问题:这应该是一个通用函数还是两个特定函数?
- (旧的设计:)有一个通用的
executeQuery
方法,它采用的查询执行和一个布尔commit
参数,指示是否提交(插入,更新,删除)否(选择),并用if语句确定是否提交或选择并返回。 - (这是我习惯的方式,但可能是因为你不能有一个功能,有时会返回一些东西,有时并没有在语言,我曾与:)有2个功能,
executeQuery
和executeUpdateQuery
(或类似的东西)。executeQuery
将执行一个简单的查询并返回结果集,而executeUpdateQuery
将更改数据库(插入,更新,删除)并返回任何内容。
是否接受使用第一种方式?对我来说似乎还不清楚,但也许它更蟒蛇......? Python是非常灵活的,也许我应该利用这种功能,这种功能不能用这种更严格的语言来完成......
而这个问题的第二部分,与主要思想无关 - 什么是在Python中返回查询结果的最佳方式是什么?使用哪个函数来查询数据库,以什么格式...?
与您的主要问题无关,但如果您正在编写SQL后端的接口,则可以尝试尽可能严格地遵循DBAPI:http://www.python.org/dev/peps/ pep-0249/- 兼容DBAPI的模块可以更容易地集成到其他知道如何与数据库交谈的Python软件中。 – 2010-09-07 20:06:51
'executeUpdate'可以返回受影响的行数。为了返回灵活的结果,你可以将row_factory_function传递给你的'executeQuery'。 – MattH 2010-09-07 20:12:37