我正在尝试运行大约50个迷你网站,这些网站共享约90%的代码。我的初衷是将它们作为具有公共库的单独应用程序运行,但我已阅读有关允许它们从单个实例运行的站点框架。
https://docs.djangoproject.com/en/dev/ref/contrib/sites/
我的问题是,网站框架是否是解决此类问题的正确方法,并且它在运行单独的应用程序方面具有真正的好处。
答案 0 :(得分:1)
网站框架可能非常适合您的工作。通常,它允许您在各种极为相似的站点上使用相同的体系结构和功能。主要的好处是,您可以维护1个Django实例,而不必管理50个不同的服务器或50个不同的Django实例。这包括数据库迁移,部署等。
答案 1 :(得分:1)
站点框架对于在数据库中实现“多租户”非常有用 - 属于不同站点/实例的不同数据集,都在同一个数据库中。 除此之外,您还可以为每个站点定义主机名。
但您的SITE_ID在settings.py中设置,因此为了拥有多个站点,您需要多个settings.py配置,这意味着多个不同的进程/实例。您当然可以在它们之间共享代码库,但每个站点都需要一个专用的worker / WSGIDaemon来为该站点提供服务。
或者,您可以使用django_layers(我编写的包)从单个实例为不同的站点(具有不同的模板,静态资源等)提供服务。