MySQL的示例数据库配置:
DATABASES = {
'auth_db': {
'NAME': 'auth_db',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'swordfish',
},
'master': {
'NAME': 'master',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'spam',
},
'slave1': {
'NAME': 'slave1',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'eggs',
},
'slave2': {
'NAME': 'slave2',
'ENGINE': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'bacon',
},
}
Django是否会在初始连接时连接所有数据库,即使有些数据库根本没有被使用? 例如:
使用多个数据库的原始游标
所以,在这里, 1. connections对象是否包含已经建立的连接?还是只有在请求游标时才进行连接? 2. 是否有一种方法可以更改此默认行为,并按需进行连接(所有查询都作为原始查询,所有数据库都是MySQL)?如果您使用多个数据库,则可以使用django.db.connections来获取特定数据库的连接(和游标)。django.db.connections是类似于字典的对象,允许您使用其别名检索特定连接:
from django.db import connections
cursor = connections['my_db_alias'].cursor()