下面是Django app配置多个数据库代码实例的完整攻略:
1. 在Django项目的settings.py中添加数据库连接信息
在Django项目的settings.py中,我们可以配置多个数据库的连接信息。以下是一个例子:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'main_db',
'USER': 'main_db_user',
'PASSWORD': 'main_db_password',
'HOST': 'localhost',
'PORT': '3306',
},
'second_db': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'second_db',
'USER': 'second_db_user',
'PASSWORD': 'second_db_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
在上面的代码中,我们定义了两个数据库:一个是名为main_db的默认数据库,另一个是名为second_db的第二个数据库。
2. 配置app去使用不同的数据库
在配置完多个数据库信息之后,我们需要指定哪些Django app使用哪个数据库,这可以通过在app的models.py中指定db_table来实现。以下是一个例子:
from django.db import models
class MainDatabaseModel(models.Model):
name = models.CharField(max_length=50)
class Meta:
db_table = 'main_database_model'
app_label = 'your_app_name'
managed = False
class SecondDatabaseModel(models.Model):
name = models.CharField(max_length=50)
class Meta:
db_table = 'second_database_model'
app_label = 'your_app_name'
managed = False
using = 'second_db'
在上述代码中,我们定义了两个Model类:MainDatabaseModel和SecondDatabaseModel。MainDatabaseModel将使用默认的main_db数据库,而SecondDatabaseModel将使用second_db数据库。不同于默认的数据库,在SecondDatabaseModel的Meta类中,我们指定了using='second_db',这告诉Django要使用第二个数据库连接信息。
在额外的示例中,你可以在同一app中分别使用不同的数据库,以下是一个更具体的示例:
# 指定默认数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'USER': 'db_user1',
'PASSWORD': 'db_user1_password',
'HOST': 'localhost',
'PORT': '3306',
},
'second_db': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db2',
'USER': 'db_user2',
'PASSWORD': 'db_user2_password',
'HOST': 'localhost',
'PORT': '3306',
}
}
from django.db import models
class ModelForDb1(models.Model):
data = models.CharField(max_length=50)
class Meta:
db_table = 'model_for_db1'
app_label = 'your_app_name'
managed = False
class ModelForDb2(models.Model):
data = models.CharField(max_length=50)
class Meta:
db_table = 'model_for_db2'
app_label = 'your_app_name'
managed = False
using = 'second_db'
这个示例中,我们同样定义了两个Model类,并在其中区别使用了默认数据库和第二个数据库。
总结
以上就是Django app配置多个数据库代码实例的完整攻略。我们首先在Django项目的settings.py中添加了多个数据库的连接信息,然后在app的models.py中指定了每个Model使用哪个数据库连接,并指定了相应的db_table、app_label和using等参数。这样,我们就能够在同一app中使用不同的数据库连接,实现多个数据库同时访问。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django app配置多个数据库代码实例 - Python技术站