我们有一个包含二十多个模块的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