Wenn Sie sich die django.db
ansehen Modul können Sie diese django.db.connection
sehen ist ein Proxy für django.db.connections[DEFAULT_DB_ALIAS]
und django.db.connections
ist eine Instanz von django.db.utils.ConnectionHandler
.
Wenn Sie dies zusammensetzen, sollten Sie in der Lage sein, eine neue Verbindung wie folgt herzustellen:
from django.db import connections
from django.db.utils import DEFAULT_DB_ALIAS, load_backend
def create_connection(alias=DEFAULT_DB_ALIAS):
connections.ensure_defaults(alias)
connections.prepare_test_settings(alias)
db = connections.databases[alias]
backend = load_backend(db['ENGINE'])
return backend.DatabaseWrapper(db, alias)
Beachten Sie, dass diese Funktion bei jedem Aufruf eine neue Verbindung öffnet und Sie dafür verantwortlich sind, sie zu schließen. Außerdem werden die verwendeten APIs wahrscheinlich als intern angesehen und können sich ohne Vorankündigung ändern.
Um die Verbindung zu schließen, sollte es ausreichen, .close()
aufzurufen bei der Objektrückgabe durch create_connection
Funktion:
conn = create_connection()
# do some stuff
conn.close()