Nếu bạn xem django.db
mô-đun, bạn có thể thấy rằng django.db.connection
là một proxy cho django.db.connections[DEFAULT_DB_ALIAS]
và django.db.connections
là một bản sao của django.db.utils.ConnectionHandler
.
Kết hợp điều này với nhau, bạn sẽ có thể có được một kết nối mới như sau:
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)
Lưu ý rằng chức năng này sẽ mở một kết nối mới mỗi khi nó được gọi và bạn có trách nhiệm đóng nó. Ngoài ra, các API mà nó sử dụng có thể được coi là nội bộ và có thể thay đổi mà không cần thông báo.
Để đóng kết nối, chỉ cần gọi .close()
là đủ trên đối tượng trả về bằng create_connection
chức năng:
conn = create_connection()
# do some stuff
conn.close()