Pokud se podíváte na django.db
modul, můžete vidět, že django.db.connection
je proxy pro django.db.connections[DEFAULT_DB_ALIAS]
a django.db.connections
je instancí django.db.utils.ConnectionHandler
.
Když to dáme dohromady, měli byste být schopni získat nové připojení, jako je toto:
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)
Všimněte si, že tato funkce otevře nové připojení pokaždé, když je zavolána, a vy jste odpovědní za jeho uzavření. Rozhraní API, která používá, jsou pravděpodobně považována za interní a mohou se bez upozornění změnit.
K uzavření spojení by mělo stačit zavolat .close()
na objekt se vrátí pomocí create_connection
funkce:
conn = create_connection()
# do some stuff
conn.close()