Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare una nuova connessione al database in django

Se dai un'occhiata a django.db modulo, puoi vedere che django.db.connection è un proxy per django.db.connections[DEFAULT_DB_ALIAS] e django.db.connections è un'istanza di django.db.utils.ConnectionHandler .

Mettendo insieme questo, dovresti essere in grado di ottenere una nuova connessione come questa:

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)

Nota che questa funzione aprirà una nuova connessione ogni volta che viene chiamata e sei responsabile della sua chiusura. Inoltre, le API che utilizza sono probabilmente considerate interne e potrebbero cambiare senza preavviso.

Per chiudere la connessione, dovrebbe essere sufficiente chiamare .close() sull'oggetto restituito da create_connection funzione:

conn = create_connection()
# do some stuff
conn.close()