Django - 在哪里初始化静态对象?

时间:2012-05-11 15:46:12

标签: django

我需要在Django的模型框架之外管理数据库连接池。

初始化这样的对象的'正确'位置(以便整个应用程序可以访问同一个对象),第二个要求是当django / python关闭时关闭我的连接的能力。

谢谢!

2 个答案:

答案 0 :(得分:1)

看起来Django在django.db中有自己的Connection对象(正确类型的代理)。 _ init _ .py 因此,在您的个人应用的 _ init _ 中初始化您的内容似乎不是一个坏主意。

Django在关闭连接时会注册一个信号,所以只需捕获此信号即可关闭连接。以下代码取自django.db。 _ init _ .py

# Register an event that closes the database connection
# when a Django request is finished.
def close_connection(**kwargs):
    for conn in connections.all():
        conn.close()
signals.request_finished.connect(close_connection)

答案 1 :(得分:0)

满足您的第二个要求: Django注册信号以关闭连接

https://github.com/django/django/blob/master/django/db/init.py