一个django项目如何使用多个相同结构的数据库进行读写,区分url

How does a django project use multiple databases with the same structure to read and write, distinguished by url

我有一个django项目,想把它分成多个相同结构的数据库。

使用url区分不同的数据库。 admin管理页面登录时,根据不同的urls.

登录不同的数据库

例如:127.0.0.1/admin使用admin数据库,127.0.0.1/admin2使用admin2数据库。

django有实现这个功能吗?我需要做什么,你能给我一些建议或想法吗?非常感谢

TL;DR 就单django项目而言,没有默认实现多数据库的方式。

场景一

根据您非常有限的解释,我假设您想将一个管理仪表板的数据与第二个管理仪表板的数据分开,以实现关于权限和其他模型的数据隔离,这称为多租户。

非常简单:在多租户架构中,您可以拥有多个租户,其结构由您的 models.py 定义,您可以通过主超级管理员控制所有这些租户,这些租户可以拥有自己的管理仪表板,其中存储在其中的数据仅特定于其租户用户。用更简单的术语来说,您可以使用这种方法拥有一个 SaaS 应用程序,其中您可以拥有多个组织,这些组织有自己的用户和他们特定的 permissions/groups。

可以使用 POSTGRESql 和 this awesome package that has already done most of the heavy lifting for you. You can achieve seperate logins via url or subdomain. If your tenants have users who part of more than one organisation and you want a single login for all of them then you can use this package 与 django-tenants 一起通过模式分离的数据库在 django 中实现多租户。它为 public 用户 table 提供了针对每个租户的单独权限模块。

场景二

根据你非常有限的解释,我会假设你仍然希望你的应用程序有单独的数据库,在这种情况下你需要重新考虑你的问题解决方法,因为它不是你在部署后会喜欢的东西,因为没有直接的django提供的方式。相反,您应该研究微服务架构。