1

我几乎完成了一个 Django 项目的开发(带有一些可插入的应用程序)。

我想以 SaaS 的形式提供这个项目(类似于 basecamp)。

即: project1.mysaas.com , project2.mysaas.com 等

我寻求您的专业知识来向我展示道路。

我想到的方法是:

  • 1 使用站点定义站点特定的设置.py
  • 2 一个检测请求的中间件,然后相应地设置设置
  • 3 为每个站点创建 Django 项目(采用可插入的应用程序)

谢谢。

顺便说一句,我是一个完全的新手。

4

1 回答 1

3

您的要求根本不清楚,但我假设您没有做任何棘手的事情,并且还假设您的“project1”、“project2”是不需要任何特殊品牌的客户名称。

首先,关于你的想法:

  1. 除非每个站点的品牌不同,否则您可能不需要使用站点框架。站点框架可以很好地完成它的设计目的,即呈现一组公共数据的不同视图。

  2. 这会起作用,但可能不是 IMO 的最佳方法。

  3. 这是无法管理的。

现在,这是一个非常困难的话题,因为有很多问题。High Scalability Blog是一个不错的开始阅读的地方,与您特别相关的是37signals Architecture上的帖子。

最后,这是我在一个小型 SaaS 应用程序中所做的事情(不需要极高的可扩展性):

  • 使用站点框架(因为用户页面将由合作伙伴/经销商标记,并且每个合作伙伴都有一个唯一的登录页面)

  • 使用 mod_wsgi 来最小化所有 Django 实例的资源使用。

  • 我没有使用中间件,而是在每个标识用户公司的视图顶部放置一个通用代码。我需要这个作为视图中的逻辑,这就是为什么我认为它在中间件中没有用。

于 2009-08-20T11:42:23.683 回答