如何将大型 Django 项目划分为子项目进行扩展?

Afs*_* KK 5 git django scaling project divide

Django项目(电子商务网站),我们需要将其划分为买家、卖家和管理员的子项目,并相应地创建三个数据库。那么如果在一个项目中更新,我们如何在 3 个项目中管理相同的模型(架构)?

小智 1

Django 支持同一项目的多个数据库功能。

\n

这可以通过在settings.py中定义多个数据库属性来实现

\n
DATABASES = {\n    \'default\': {},\n    \'buyer\': {\n        \'NAME\': \'buyer\',\n        \'ENGINE\': \'django.db.backends.mysql\',\n        \'USER\': \'\',\n        \'PASSWORD\': \'\'\n    },\n    \'customers\': {\n        \'NAME\': \'customers\',\n        \'ENGINE\': \'django.db.backends.mysql\',\n        \'USER\': \'\',\n        \'PASSWORD\': \'\'\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

需要同时定义路由器。\n https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#using-routers

\n

也可以使用关键字\neg手动选择数据库。

\n
## fetch\nCustomer.objects.using(\'customers\').all()\n## save\ncustomer_obj.save(using=\'customers\')\n
Run Code Online (Sandbox Code Playgroud)\n

当然,多个数据库存在一些限制,例如

\n
    \n
  • 跨数据库关系

    \n

    Django 目前不\xe2\x80\x99t 提供对跨多个数据库的外键或多对多关系的任何支持。

    \n
  • \n
  • 贡献应用程序的行为

    \n

    一些贡献应用程序包含模型,并且一些应用程序依赖于其他应用程序。由于跨数据库关系是不可能的,这对如何跨数据库分割这些模型产生了一些限制:\n https://docs.djangoproject.com/en/3.0/topics/db/multi-db/#behavior-of -contrib-应用程序

    \n
  • \n
\n

更多详情可点击官方链接:

\n

https://docs.djangoproject.com/en/3.0/topics/db/multi-db/

\n