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

Sådan opretter du en ny databaseforbindelse i django

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()



  1. Bedste måde at oprette forbindelse til MySQL med PHP sikkert

  2. Log registreringsændringer i SQL-server i en revisionstabel

  3. Får duplikatkolonnenavnsfejl i Django uden nogen åbenbar grund

  4. Sammenkædning af poster i en enkelt kolonne uden looping?