我可以在Django中使用外部数据库表进行登录吗?

时间:2016-11-08 03:07:39

标签: python mysql django

所以我开始一个新的Django项目,基本上需要登录&注册过程通过EXTERNAL& ALREADY创建了数据库。

当Django为:

时,是否可以让User模型使用EXTERNAL数据库表?
  1. 登录用户,检查登录是否有效
  2. 注册用户,在外部数据库中插入该用户的数据
  3. 我希望Django服务器的其余部分使用本地数据库。

    如果是这样,有人可以提供示例或指导我有关该主题的文档吗?

2 个答案:

答案 0 :(得分:1)

使用Django的多个数据库的最简单方法是使用数据库路由。默认情况下,Django坚持使用单个数据库,但是,如果要实现更有趣的数据库路由系统,可以定义并安装自己的数据库路由器。

使用DATABASE_ROUTERS设置安装数据库路由器。您必须在settings.py文件中指定此设置

你需要做的就是编写一个AuthRouter,如Django文档所述Django Multiple Database

答案 1 :(得分:0)

"是的,但"

您在文档中寻找的内容称为" database router"。 在那里的文档中甚至还有一个auth app的例子。

但是,采用这种方法存在严重缺陷:

我们不能在模型中建立跨数据库关系。如果auth表位于单独的数据库中,这意味着需要用户模型的外键的任何otehr应用程序都会遇到问题。你可能能够"假"使用不强制执行关系检查的数据库的关系(SQLite或MyISAM / MySQL)。

开箱即用,此类应用程序包括:会话,authtoken和admin(可能还有更多)。

或者,单点登录解决方案可能会做得更好:django-sso,或django-mama-cas + django-cas-ng,或商业Stormpath。