我正在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