2016-11-08 46 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

相关问题