Hvis du har et kig på django.db
modul, kan du se den django.db.connection
er en proxy for django.db.connections[DEFAULT_DB_ALIAS]
og django.db.connections
er en forekomst af django.db.utils.ConnectionHandler
.
Når du sætter dette sammen, skulle du være i stand til at få en ny forbindelse som denne:
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)
Bemærk, at denne funktion åbner en ny forbindelse, hver gang den kaldes, og du er ansvarlig for at lukke den. De API'er, den bruger, betragtes sandsynligvis også som interne og kan ændres uden varsel.
For at lukke forbindelsen burde det være nok at kalde .close()
på objektet returneres af create_connection
funktion:
conn = create_connection()
# do some stuff
conn.close()