2016-11-08 39 views
1

因此,我開始一個新的Django項目,基本上要求登錄&註冊過程通過EXTERNAL & ALREADY創建的數據庫路由。我可以在Django中使用外部數據庫表進行登錄嗎?

是否有可能讓用戶模型中使用外部數據庫表僅當Django是:

  1. 登錄用戶,以檢查登錄是有效
  2. 註冊用戶,將數據插入該外部數據庫中的用戶

我想爲Django服務器的其餘部分使用本地數據庫。

如果是這樣,有人可以提供示例或指導我有關該主題的文檔?

+0

回答所有的即是指定此設置。 – e4c5

回答

0

「是的,但」

什麼你在文檔中尋找被稱爲「database router」。 在那裏的文檔中甚至有一個auth應用程序的例子。

但是,有是S嚴重的缺點,使用這種方法來考慮:

我們不能在模型跨數據庫的關係。如果auth表位於單獨的數據庫中,這意味着需要User模型的外鍵的任何應用程序應用程序都會遇到問題。您可能能夠使用不執行關係檢查的數據庫(SQLite或MyISAM/MySQL)來「僞造」關係。

這些應用程序開箱即用:session,authtoken和admin(可能更多)。

或者,單點登錄解決方案可能會做得更好:django-sso或django-mama-cas + django-cas-ng或商業Stormpath。

1

使用多個數據庫與Django最簡單的方法是使用數據庫路由。默認情況下,Django堅持單一數據庫,但是,如果你想實現更有趣的數據庫路由系統,你可以定義和安裝自己的數據庫路由器。

使用DATABASE_ROUTERS設置安裝數據庫路由器。你在你的settings.py文件

你所要做的就是寫一個AuthRouter描述Django文檔Django Multiple Database

相關問題