Jika Anda melihat django.db
modul, Anda dapat melihat bahwa django.db.connection
adalah proxy untuk django.db.connections[DEFAULT_DB_ALIAS]
dan django.db.connections
adalah turunan dari django.db.utils.ConnectionHandler
.
Jika digabungkan, Anda seharusnya bisa mendapatkan koneksi baru seperti ini:
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)
Perhatikan bahwa fungsi ini akan membuka koneksi baru setiap kali dipanggil dan Anda bertanggung jawab untuk menutupnya. Selain itu, API yang digunakannya mungkin dianggap internal dan dapat berubah tanpa pemberitahuan.
Untuk menutup koneksi, cukup memanggil .close()
pada objek kembali dengan create_connection
fungsi:
conn = create_connection()
# do some stuff
conn.close()