Django 中的
route_app_labels
是一个设置,用于控制哪些应用程序中的数据库路由可以在多数据库环境中使用。默认情况下,Django 中的每个应用程序只会连接到一个数据库中,这个设置可以允许某些应用程序连接到多个数据库中。
route_app_labels
可以在 Django 项目的 settings.py 文件中进行设置,它是一个字典类型的变量,键是应用程序的名称,值是一个包含数据库路由的列表。例如,以下代码将应用程序
myapp
连接到名为
mydb1
和
mydb2
的两个数据库中:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'default_db',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
'mydb1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb1',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
'mydb2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb2',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
DATABASE_ROUTERS = ['myapp.routers.MyAppRouter']
# 设置 route_app_labels
ROUTE_APP_LABELS = {
'myapp': ['mydb1', 'mydb2'],
在上面的示例中,myapp
应用程序将使用自定义路由器 myapp.routers.MyAppRouter
,并且该应用程序将连接到 mydb1
和 mydb2
两个数据库中。如果您的项目中有多个应用程序需要连接到不同的数据库,您可以设置每个应用程序的 route_app_labels
,以确保每个应用程序使用正确的数据库路由。