Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erstellen Sie eine neue Datenbankverbindung in Django

Wenn Sie sich die django.db ansehen Modul können Sie diese django.db.connection sehen ist ein Proxy für django.db.connections[DEFAULT_DB_ALIAS] und django.db.connections ist eine Instanz von django.db.utils.ConnectionHandler .

Wenn Sie dies zusammensetzen, sollten Sie in der Lage sein, eine neue Verbindung wie folgt herzustellen:

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)

Beachten Sie, dass diese Funktion bei jedem Aufruf eine neue Verbindung öffnet und Sie dafür verantwortlich sind, sie zu schließen. Außerdem werden die verwendeten APIs wahrscheinlich als intern angesehen und können sich ohne Vorankündigung ändern.

Um die Verbindung zu schließen, sollte es ausreichen, .close() aufzurufen bei der Objektrückgabe durch create_connection Funktion:

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