如何使用常见的Django代码库托管50个域/站点

时间:2010-04-16 19:14:50

标签: django deployment hosting

我有50个不同的网站使用相同的布局和代码库,但大多数是非重叠数据(区域支持网站,而不是链接农场)。有没有办法单独安装代码并同时运行所有50个代码?

当我有修复(或部署新功能)的错误时,我想部署一次+ 1重启并完成它。

此外:

代码需要知道请求来自哪个域,以便显示相应的数据。

3 个答案:

答案 0 :(得分:1)

Sites framework浮现在脑海中。

除此之外,我们让Django通过将Django符号链接到各种docroots来运行多个站点。也像魅力一样。

答案 1 :(得分:1)

我可以看到两种完全不同的方法:

  1. 使用一个数据库和站点框架。每个帖子/图片/任何模型都连接到网站,您始终在网站上过滤。这需要为每个数据库设置单独的设置文件。
  2. 为每个站点使用一个数据库。这允许每个站点的不同用户,但需要复制存储在数据库中的所有。它还需要一个指向正确数据库的单独设置文件。
  3. 无论哪种方式,您都不会复制任何代码,只复制数据。

    -

    如果您需要对ie进行特定于站点或特定于事后的更改。一个模板,你应该读懂Django如何加载模板。它允许您指定一个列表,即[“story_%d.html”,“story_site_%d.html”,“story.html”],django将按顺序查找模板。

答案 2 :(得分:0)

我刚刚遇到这个并最终使用了一个自定义中间件类:

  1. 获取HTTP_HOST
  2. 清理HTTP_HOST(删除www,端口等)
  3. 在与每个帐户关联的网站表中查找域名。
  4. 在HTTPRequest对象上设置帐户实例。
  5. 在我的整个视图代码中,我根据存储在HTTPRequest对象中的帐户进行查找。

    希望将来帮助某人。