【问题标题】:Django: How to properly handle two websites at the same time with a shared database?Django:如何使用共享数据库同时正确处理两个网站?
【发布时间】:2016-09-21 14:46:48
【问题描述】:

我研究了如何使用 Django 处理多个网站,但似乎没有什么能让我真正信服:hereherehere

这是我现在拥有的:

在服务器上运行的单个 Django 项目,带有两个应用程序。一个用于 API(使用 django REST 框架)和另一个应用程序,它基本上使用 API 并显示数据(直接在数据库中检索)。我的数据库是 Oracle 并且出于稳健性原因在单独的服务器上。

这是我想要的:

两个网站,一个是 API(某些用户只使用 API),另一个是网站(供其他用户使用)。 我显然需要这两个网站共享同一个数据库(但这在 settings.py 文件中应该不难处理),而且我还需要使用相同的模型、管理员等...

我怎样才能尽可能干燥地处理这个问题?如果我创建了两个 django 项目,我将不得不复制我的模型、我的管理员以及某些业务类和功能......这可能很难维护。

另一种方法是使用虚拟主机和 url 重定向以使其无缝。

您认为最好的解决方案是什么?你能提供一个实现的例子吗?

谢谢!

【问题讨论】:

    标签: python django django-rest-framework virtualhost


    【解决方案1】:

    有几个选项:

    1. 创建 2 个项目和一个 django 应用程序。您为公共代码(如模型)创建 django 应用程序。然后创建 2 个项目并在这两个项目中使用该应用程序。
    2. 创建 1 个项目,其中包含 3 个应用程序 1 个用于公共代码的应用程序,1 个用于 API 和 1 个用于应用程序。 API 和应用应用程序将使用公共代码应用程序。
    3. 仅使用 1 个应用程序创建 1 个项目。您必须为 API 和应用程序创建不同的视图,并为每个视图映射不同的 url。

    选项按开销排序,而第一个选项开销最大,但它是最有条理的解决方案。

    哪个最好?这取决于您的项目的大小。越大 - 开销就越多。如果你不知道未来项目的规模是多少,那么我会从第三个选项开始,随着项目的发展,转向第二个和第一个选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2023-03-07
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多