[英]Python / Django multi-tenancy solution
我可以利用一些幫助為我正在從事的項目制定攻擊計划。
想象一下,該站點是為一個負責監督分布在世界各地的區域銷售辦事處的小組所用。 該項目的目的是讓超級用戶快速創建特定於每個辦公室的新子站點——站點是頻繁添加的。 辦公室子站點應該完全包含特定於該子站點的“管理員”用戶,並且應該是用戶友好的 CMS。 超級用戶應該能夠介入並管理所有這些辦公室子站點。
除了獨立的辦公室子站點實例之外,每個子站點還需要管理聯系人、線索等,並將其存儲在一個中央區域供超級用戶使用。
我已經使用 Django 完成了一些網站,但從來沒有做過多租戶網站。 我想要使用的技術或可能有用的教程/文檔的建議。
要求:
考慮到上述情況,您會推薦什么方法? 我願意重新考慮技術,但我想堅持使用 Python。
有一個很棒的應用程序叫做django-tenant-schemas ,它使用 PostgreSQL 模式機制來創建多租戶。
你得到的是指定SHARED_APPS
包含跨所有模式(子站點)共享的對象,和TENANT_APPS
包含特定於子站點的對象,即用戶、記錄等。模式彼此完全隔離。
每個 PostgreSQL 模式都綁定到一個域 url,以便中間件檢查請求的HOST
部分並將數據庫連接的模式設置為適當的模式。
此外,它還允許您定義一個PUBLIC_SCHEMA_URLCONF
,它允許您為公共架構指定 urlconf 文件 - 不綁定到任何子站點的元站點。
抱歉,我的回答是快速而骯臟的,我只是分享我為實現多租戶所做的工作:
上面的兩個庫在組合時能夠為多租戶且靈活的 django 實例提供服務。 我在這里的意思是靈活是:您可以定義任何模型,無論是“租戶”還是“全局”。 因此,您可以擁有一個包含全球用戶但每個租戶產品目錄或每個租戶 + 產品的站點。 從我嘗試過的許多 django 應用程序中,這是實現多租戶的最靈活的方式
我一直在嘗試將django-tenants與 Wagtail 一起使用一段時間,但這種組合效果不佳,或者讓我說,盡管進行了很多嘗試,但我還是無法讓 wagtail 管理頁面正常工作。
我想會嘗試切換到我更廣泛使用的
django-tenant-schemas
。
注意:現在不維護 django-tenant-schema。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.