关于多站点的一般想法

时间:2012-10-29 09:02:07

标签: python django multiple-sites

我想在我的项目中实现多个站点的概念,因为我已经研究了django的官方site framework教程以及其他教程。

但是我有点混淆我应该从哪里开始,因为正如在doc中给出的那样,有多个站点id被使用。但是我有一个像往常一样。在某些文档中,有一些编辑是在 HTTPD.conf 文件

中完成的

所以我从文档中不了解,从哪里开始?

所以请任何机构告诉我实施多站点的步骤。

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的原则。您拥有定义站点的站点模型,然后在模型中引用此模型。假设我们创建了一个博客应用程序,您将拥有:

网站模型:

ID | domain             | name
1  | site-a.example.com | John's blog
2  | site-b.example.com | David's blog

BlogArticle:

ID | site_id | title                         | ...
1  | 1       | Some title for John's article | ...
2  | 1       | Another post by John          | ...
3  | 2       | David's blog post             | ...

如何将此部署在Web服务器上?您的博客应用程序代码对于每个博客都是相同的,因此您将其放置在Python路径中的某个位置,其中site-a和site-b安装可以导入它(通常您创建virtualenv并在那里安装您的博客应用程序)。现在,您为这两个域创建了两个虚拟网站 - site-a.example.com和site-b.example.com,并为每个网站创建一个单独的django项目(这更像是一个站点配置文件而不是常规项目)。现在,您如何知道哪个项目适用于哪个博客?您可以在指向此类博客的站点ID的每个项目设置中定义SITE_ID常量,并列出给定博客的所有文章,并将当前站点添加到过滤条件。