簡體   English   中英

一個django項目如何使用多個相同結構的數據庫讀寫,通過url區分

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

我有一個django的項目,想把它分成多個相同結構的數據庫。

使用url來區分不同的數據庫。 admin管理頁面登錄時,根據不同的url登錄不同的數據庫。

例如:127.0.0.1/admin使用admin數據庫,127.0.0.1/admin2使用admin2數據庫。

django是否實現了這個function? 我需要做什么,你能給我一些建議或想法嗎? 非常感謝

TL;DR就單個 django 項目而言,沒有實現多個數據庫的默認方式。

場景 1

根據您非常有限的解釋,我假設您想將一個管理儀表板的數據與第二個管理儀表板的數據分開,以實現與權限和其他模型相關的數據隔離,這稱為多租戶。

非常簡單:在多租戶架構中,您可以擁有多個租戶,其結構由您的 models.py 定義,您可以通過主超級管理員控制所有這些租戶,這些租戶可以擁有自己的管理儀表板,其中存儲的數據只是特定的給他們的租戶用戶。 用更簡單的術語來說,您可以使用這種方法擁有一個 SaaS 應用程序,您可以在其中擁有多個組織,這些組織擁有自己的用戶和他們的特定權限/組。

可以在 django 中通過使用 POSTGRESql 的模式分離數據庫實現多租戶,這個很棒的 package已經為您完成了大部分繁重的工作。 您可以通過 url 或子域實現單獨登錄。 如果您的租戶有屬於多個組織的用戶,並且您希望所有這些用戶都登錄一次,那么您可以使用與 django-tenants 一起使用的這個 package 它提供了一個公共用戶表,每個租戶都有單獨的權限模塊。

場景 2

根據您非常有限的解釋,我會假設您仍然需要為您的應用程序使用單獨的數據庫,在這種情況下,您需要重新考慮您解決問題的方法,因為這不是您在部署后會喜歡的東西,因為 django 沒有提供直接的方法。相反,您應該研究微服務架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM