如何将大型Django项目划分为子项目进行扩展?
Django项目(电子商务网站),我们需要将其分为买方、卖方和管理员三个子项目,并相应地创建三个数据库。那么,如果在一个项目中更新相同的模型(模式),我们如何在三个项目中管理它呢?Django支持同一项目的多个数据库功能 这可以通过在settings.py中定义多个数据库属性来实现如何将大型Django项目划分为子项目进行扩展?,django,git,project,scaling,divide,Django,Git,Project,Scaling,Divide,Django项目(电子商务网站),我们需要将其分为买方、卖方和管理员三个子项目,并相应地创建三个数据库。那么,如果在一个项目中更新相同的模型(模式),我们如何在三个项目中管理它呢?Django支持同一项目的多个数据库功能 这可以通过在settings.py中定义多个数据库属性来实现 DATABASES = { 'default': {}, 'buyer': { 'NAME': 'buyer', 'ENGINE': 'django.db.backen
DATABASES = {
'default': {},
'buyer': {
'NAME': 'buyer',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
},
'customers': {
'NAME': 'customers',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
}
}
还需要定义路由器。
也可以使用关键字通过手动选择数据库
例如
当然,多数据库也有一些限制,例如
- 跨数据库关系 Django目前不支持外键或多对多 跨多个数据库的关系
- contrib应用程序的行为 一些contrib应用程序包括模型,一些应用程序依赖于其他应用程序。由于不可能存在跨数据库关系,因此对如何跨数据库拆分这些模型产生了一些限制:
为项目的公共部分创建回购协议,并将其添加到需求中。pip?@BearBrown我们谈论的是模型和网站性能等,而不是软件包安装。我的意思是您可能需要
## fetch
Customer.objects.using('customers').all()
## save
customer_obj.save(using='customers')