在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。
1. 修改项目的 settings 配置
在 settings.py
中配置需要连接的多个数据库连接串
# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'db1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'USER': 'root',
'PASSWORD': 'your_mysql_password',
'HOST': '127.0.0.1',
'PORT': '3306'
},
'db2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db2',
'USER': 'root',
'PASSWORD': 'your_mysql_password',
'HOST': 'localhost',
# 默认'PORT': '3306'
}
}
your_mysql_password: 你的mysq密码;
假设现在我们用到3个数据库,一个default默认库,一个 db1 和 db2。
2. 设置数据库的路由规则方法
在 settings.py
中配置 DATABASE_ROUTERS
# use multi-database in django
# add by ZhengShilin
DATABASE_ROUTERS = ['your_project_name.database_router.DatabaseAppsRouter']
your_project_name: 建立的django项目名称(project_name) ;
database_router: 定义路由规则