2

我有一个包含多个应用程序的 Django 项目。我的项目现在已经到了需要 API 的地步。我打算使用tastepie 将API 放在不同的服务器上。但是,API 将使用与网站相同的模型。

到目前为止,我看到我唯一的选择如下......

将应用程序复制到服务器,这意味着我有两个应用程序使用相同的模型,现在必须维护两个代码库 --- 糟糕!

那么,其他人如何处理呢?我有什么选择?

我的模型可以以某种方式共享吗?

4

4 回答 4

3
  1. 为了使这有意义,您可能需要连接到同一个数据库
  2. 为什么需要两个代码库?您有一个代码库的两个副本。
于 2013-05-30T21:49:11.027 回答
2

我不建议像这样拆分您的项目。

每次编辑模型时,您都必须立即对其进行编辑,否则可能会出现不同步的风险。相反,这将变得非常非常痛苦;

服务器是瓶颈吗?拆分站点和 api 机器(但使用相同的models.py)并在某处共享与数据库的连接。

数据库是瓶颈吗?将数据库扩展到更快的机器/集群并使用相同的站点来提供 web 和 api。

无论哪种方式,一个代码库,一组模型,一个数据库!

于 2013-05-31T10:24:08.433 回答
1

将您的应用程序与模型放在单独的存储库中,然后使用git-submodule.

于 2013-05-30T21:50:18.367 回答
1

为什么不在同一服务器上的不同端口上运行 api?这将为您节省很多问题。跨服务器共享数据库连接可能需要您大量考虑安全性。

此外,如果您在不同的项目中重用相同的应用程序,您可能需要打包和版本化您的应用程序以方便使用。想想你要解决的真正问题,并始终牢记这一点。每个问题都有很多解决方案,找到正确的解决方案会有所作为。

于 2013-05-30T21:50:23.953 回答