2012-05-11 3 views
0

Мне нужно управлять пулом соединений DB за пределами рамки модели Django.Django - где инициализировать статические объекты?

Где «право» для инициализации таких объектов (чтобы все приложение имело доступ к одному и тому же объекту), а вторым требованием является возможность закрыть мои соединения, когда django/python выключается.

Спасибо!

ответ

1

Похоже, Django inits свой собственный объект Connection (прокси для правильного типа) в django.db , _ 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)