我几乎完成了一个 Django 项目的开发(带有一些可插入的应用程序)。
我想以 SaaS 的形式提供这个项目(类似于 basecamp)。
即: project1.mysaas.com , project2.mysaas.com 等
我寻求您的专业知识来向我展示道路。
我想到的方法是:
- 1 使用站点定义站点特定的设置.py
- 2 一个检测请求的中间件,然后相应地设置设置
- 3 为每个站点创建 Django 项目(采用可插入的应用程序)
谢谢。
顺便说一句,我是一个完全的新手。
我几乎完成了一个 Django 项目的开发(带有一些可插入的应用程序)。
我想以 SaaS 的形式提供这个项目(类似于 basecamp)。
即: project1.mysaas.com , project2.mysaas.com 等
我寻求您的专业知识来向我展示道路。
我想到的方法是:
谢谢。
顺便说一句,我是一个完全的新手。
您的要求根本不清楚,但我假设您没有做任何棘手的事情,并且还假设您的“project1”、“project2”是不需要任何特殊品牌的客户名称。
首先,关于你的想法:
除非每个站点的品牌不同,否则您可能不需要使用站点框架。站点框架可以很好地完成它的设计目的,即呈现一组公共数据的不同视图。
这会起作用,但可能不是 IMO 的最佳方法。
这是无法管理的。
现在,这是一个非常困难的话题,因为有很多问题。High Scalability Blog是一个不错的开始阅读的地方,与您特别相关的是37signals Architecture上的帖子。
最后,这是我在一个小型 SaaS 应用程序中所做的事情(不需要极高的可扩展性):
使用站点框架(因为用户页面将由合作伙伴/经销商标记,并且每个合作伙伴都有一个唯一的登录页面)
使用 mod_wsgi 来最小化所有 Django 实例的资源使用。
我没有使用中间件,而是在每个标识用户公司的视图顶部放置一个通用代码。我需要这个作为视图中的逻辑,这就是为什么我认为它在中间件中没有用。