如何让两个不同的Django项目进行通信?

时间:2016-07-18 11:53:57

标签: django rest django-rest-framework

就像标题所说,我有两个Django项目。与其他SO问题不同,这些是完全不同的项目,这意味着它们不共享数据库,托管环境,域名等。这就是我想要和需要的,项目之间的完全脱钩。

但是,他们在一个应用程序中都有某些模型(比如说UserProfile),这是我在两个项目中都需要的。此外,我希望只有一个项目允许登录,登录,忘记/重置密码功能。

我的想法是为它们提供RESTful API,但我仍然有一些关于如何正确实现这一点的问题:

  • 如何处理重复模型以保持同步?我是否创建了可以由其他项目修改的端点?
  • 如何进行单点登录?我需要专门的服务器吗?我还想利用Django提供的工具,例如将我当前的用户放在我的请求对象上。

我还没有找到一个很好的教程或一些详细解释如何实现所有这些,所以如果有人有任何资源,请告诉我。

如果我的问题不够明确,请通过评论告诉我。

谢谢。

1 个答案:

答案 0 :(得分:-1)

首先,如果您在这两个模型中都需要UserProfile模型,并且如果您不共享数据库,那么您将在数据库中放置冗余数据,即数据库d1和d2中的数据相同。

我能想到的唯一可能的解决方案是两个独立的数据库d1和d2都可以访问。所以这样,即使使用app1在d1中进行更改,也可以在app2中检测到这些变化,因此app1检测到d2的变化也是如此。

这样,当您的用户登录app1时,更改发生在d1中,也是由app2读取的,因此app2不需要单独进行用户身份验证。

看到这个 - > https://docs.djangoproject.com/en/1.9/topics/db/multi-db/

这也是 - > Can I have two django projects sharing the same authentication model?