我差不多开发了一个Django项目(带有一些可插拔的应用程序)。
我想将此项目作为SaaS(类似于37signals.com)提供。
即:customer1.product1.com,customer2.product2.com等
product1可能是大本营 product2可能是高层建筑 等等。
我想知道如何为这些产品构建项目。
是否应该有一个项目,所有产品都是一个应用程序。 - - 要么 - - 我应该为所有产品制作不同的项目吗?
同样是数据库的内容......如果所有产品都应该放在一个数据库中,或者每个产品都应该有单独的数据库。
我正在寻找最有效和可扩展的方法来实现这一目标。
由于
答案 0 :(得分:4)
如果您希望应用以任何方式进行交互(例如,共享用户帐户),则它们必须位于同一数据库中。在Alex Gaynor的great work on multiple database support合并到trunk之前,Django不支持多个数据库。
同样,Django's sites framework可能会让您感兴趣。如果没有关于你的意图的更多信息,很难提供更好的建议。
答案 1 :(得分:1)
如果你有一些大客户,给每个自己的数据库和Django实例都可能有意义。特别是如果你需要为他们做定制。
对于SaaS应用程序,可能有很多客户使用“创建您自己的”设置和自助管理,您可能需要一个数据库并在Django应用程序中添加子域支持。
以下是关于我们如何做到的一些好的提示和代码:Handling Subdomains in Django。
答案 2 :(得分:0)
有一个开源项目声称要为基本的37Signals类萨斯站点处理大量基础设施:http://github.com/saas-kit/django-saas-kit