sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar en ny databasanslutning i django

Om du tittar på django.db modul, kan du se den django.db.connection är en proxy för django.db.connections[DEFAULT_DB_ALIAS] och django.db.connections är en instans av django.db.utils.ConnectionHandler .

Om du sätter ihop detta borde du kunna få en ny anslutning så här:

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)

Observera att denna funktion kommer att öppna en ny anslutning varje gång den anropas och du är ansvarig för att stänga den. Dessutom anses API:erna den använder förmodligen vara interna och kan ändras utan föregående meddelande.

För att stänga anslutningen bör det räcka med att anropa .close() på objektet returneras av create_connection funktion:

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



  1. Varför kan jag inte tvinga Oracle 11g att förbruka fler processorer för en enda SQL-fråga

  2. Ingen operator matchar det angivna namnet och argumenttyp(erna). Du kan behöva lägga till explicita casts. -- Netbeans, Postgresql 8.4 och Glassfish

  3. Söker efter emojis i MySQL

  4. En guide till Pgpool för PostgreSQL:Del två