Django项目(电子商务网站)我们需要将其划分为子项目作为买方,卖方和管理员,并相应地创建三个数据库。那么,如果在一个项目中更新,我们如何在3个项目中管理相同的模型(模式)?
答案 0 :(得分:1)
Django对同一项目支持多种数据库功能。
这可以通过在 settings.py 中将多个数据库属性定义为
来实现DATABASES = {
'default': {},
'buyer': {
'NAME': 'buyer',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
},
'customers': {
'NAME': 'customers',
'ENGINE': 'django.db.backends.mysql',
'USER': '',
'PASSWORD': ''
}
}
需要与此一起定义路由器。 https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#using-routers
也可以通过使用关键字手动选择数据库 例如。
## fetch
Customer.objects.using('customers').all()
## save
customer_obj.save(using='customers')
当然,对于多个数据库,例如
跨数据库关系
Django当前不支持外键或多对多支持 跨多个数据库的关系。
contrib应用程序的行为
几个贡献应用程序都包含模型,有些应用程序依赖于其他应用程序。由于不可能建立跨数据库的关系,因此对如何在数据库中拆分这些模型产生了一些限制: https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#behavior-of-contrib-apps
可以点击官方链接获取更多详细信息: