我一直在研究在单个Django框架下拥有多个站点的各种(并且有很多种)方法。
我仍然没有看到适合我的用例的解决方案。用例是:
我想要实现的目标是:
当访问者访问example.com时,SITE_ID = 1的设置有效。
当访问者访问training.example.com时,SITE_ID = 2的设置生效。
我想这样做是因为:
网站框架上的Django文档似乎对我没有帮助,即使有了这篇以及其他一些文章,我可以看到一些可能性。
我目前的想法是使用wsgi服务器(在我的情况下是uWSGI)实际解决它,我将使用Django的默认wsgi.py,复制它,每个wsgi conf wiill都有自己的Django settings.py。
然后服务器实际上将提供两个不同的wsgi应用程序,即使它们使用大部分相同的代码。
因此,在这种情况下,我的Django项目将具有:
我的场景应该可以工作,但它会在同一个Django实例中解决这个问题的两倍。
我需要实现什么更好的实现?
答案 0 :(得分:-1)
据我所知,settings.py对于每个django项目都是唯一的,并且SITE_ID在此级别定义。恕我直言,最好的方法是使用许多django项目与数据库路由器。在每个项目中,您可以定义用于django站点框架的SITE_ID。 https://docs.djangoproject.com/en/dev/topics/db/multi-db/#database-routers