Ако погледнете django.db
модул, можете да видите този django.db.connection
е прокси за django.db.connections[DEFAULT_DB_ALIAS]
и django.db.connections
е екземпляр на django.db.utils.ConnectionHandler
.
Събирайки това заедно, трябва да можете да получите нова връзка по следния начин:
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)
Имайте предвид, че тази функция ще отваря нова връзка всеки път, когато бъде извикана и вие сте отговорни за затварянето й. Освен това API, които използва, вероятно се считат за вътрешни и може да се променят без предизвестие.
За да затворите връзката, трябва да е достатъчно да извикате .close()
на обекта, върнат от create_connection
функция:
conn = create_connection()
# do some stuff
conn.close()