我們有一個包含二十多個模塊的Python應用程序,其中大部分都由幾個Web和控制檯應用程序共享。我應該如何在多模塊Python應用程序中建立和管理數據庫連接?
我從來沒有清楚地瞭解在多模塊Python應用程序中建立和管理數據庫連接的最佳實踐。考慮這個例子:
我有一個模塊爲用戶定義一個對象類。它有很多用於在數據庫中創建/刪除/更新用戶的defs。 users.py模塊被導入到a)基於控制檯的實用程序中,2)基於web.py的web應用程序和3)持續運行的守護進程。
這三個應用程序的每一個都有不同的生命週期。守護進程可以打開連接並保持打開狀態。控制檯實用程序連接,確實工作,然後死亡。當然,http請求是原子的,但是web服務器是一個守護進程。
我目前正在打開,然後在Users類中的每個函數內使用關閉連接。這看起來效率最低,但它適用於所有示例。用作測試的替代方法是聲明並打開整個模塊的全局連接。另一個選擇是在頂層應用層創建連接並在實例化類時傳遞引用,但這對我來說似乎是最糟糕的主意。
我知道每個應用程序架構都不一樣。我只是想知道是否有最佳做法,它會是什麼?
看看連接池按照這個[question](http://stackoverflow.com/questions/98687/what-is-the-best-solution-for-database-connection-pooling-in-python) – Mark 2013-02-14 20:48:49