0

我正在尝试运行大约 50 个迷你站点,它们共享大约 90% 的代码。我最初的想法是将它们作为具有公共库的单独应用程序运行,但我已经阅读了有关允许它们从单个实例运行的站点框架的信息。

https://docs.djangoproject.com/en/dev/ref/contrib/sites/

我的问题是,站点框架是否是解决此类问题的正确方法,并且与运行单独的应用程序相比,它是否具有真正的好处。

4

2 回答 2

1

站点框架可能非常适合您正在做的事情。通常,它允许您在各种极其相似的站点上使用相同的架构和功能。主要好处是不必管理 50 个不同的服务器或 50 个不同的 Django 运行实例,您可以维护 1 个 Django 实例。这包括数据库迁移、部署等。

于 2013-09-16T12:56:35.847 回答
1

站点框架对于在您的数据库中实现“多租户”最有用 - 属于不同站点/实例的不同数据集,都在同一个数据库中。除此之外,您还可以为每个站点定义一个主机名。

但是您的 SITE_ID 是在 settings.py 中设置的,因此为了拥有多个站点,您需要多个 settings.py 配置,这意味着多个不同的进程/实例。您当然可以在它们之间共享代码库,但是每个站点都需要一个专门的工作人员/WSGIDaemon 来为站点提供服务。

或者,您可以使用django_layers(我编写的一个包)从单个实例为不同的站点(具有不同的模板、静态资源等)提供服务。

于 2013-09-16T14:35:12.843 回答