Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como criar uma nova conexão de banco de dados no django


Se você der uma olhada no django.db módulo, você pode ver que django.db.connection é um proxy para django.db.connections[DEFAULT_DB_ALIAS] e django.db.connections é uma instância de django.db.utils.ConnectionHandler .

Juntando isso, você deve conseguir uma nova conexão como esta:
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)

Observe que esta função abrirá uma nova conexão toda vez que for chamada e você é responsável por fechá-la. Além disso, as APIs que ele usa provavelmente são consideradas internas e podem ser alteradas sem aviso prévio.

Para fechar a conexão, basta chamar .close() no objeto retornado pelo create_connection função:
conn = create_connection()
# do some stuff
conn.close()