您能否告诉我一些允许您使用Python和Django创建SaaS(软件即服务)应用程序的文章/应用程序。
目前我不理解的一般主题是:
答案 0 :(得分:35)
我使用以下内容:
虽然没有必要,但从长远来看,以下内容将有所帮助:
最后,很高兴有
答案 1 :(得分:7)
一个非常基本的,基本的例子,说明你如何去做。
假设您有一个旨在解决特定业务案例的简单应用。例如,您创建了一个应用程序来处理您办公室的房间预订。
要将此应用程序“转换”为服务,您必须对其进行配置,以便应用程序的大多数用户特定部分都是参数化的(它们可以“模板化” - 因为缺乏更好的效果字)。
这是前端转换的方式。您可以创建变量来保存应用的徽标,标题,预告片,配色方案;允许每个用户自定义他们的实例。
到目前为止,您的应用可以在前端自定义。它仍然使用第一阶段设计的相同数据库。
现在只需要显示与特定用户相关的字段。这将参数化数据库。因此,您可以添加一列,将每行标识为属于特定用户;然后创建基于登录用户过滤记录的视图或存储过程。
现在应用程序可以“租用”了;因为您可以根据用户自定义实例。
然后从这里变得更大 - 取决于应用程序的规模,类型和预期的自定义。当每个用户拥有自己的专用数据库而不是存储过程+视图组合时,您可能会认为应用程序的性能更好。
您可能决定对某些用户类型(或“包”),您需要运行应用程序的专用实例。因此,对于“高级”或“超级”用户,您希望自己的专用系统运行。
如果您的应用程序需要大量存储空间,您可能会决定单独收取存储费用。
底线是它与所使用的语言无关。它更像是一种架构和设计问题。
答案 2 :(得分:6)
软件即服务只是一个营销词,它在技术上与可通过互联网访问的服务器没有什么不同。所以问题3毫无意义。这给我们留下了问题1和问题2:
在这种情况下,你对“app”的意思是什么?您的Web应用程序(使用Python和Django构建)可以有多个Django应用程序(构成Web应用程序的组件),但我认为这不是您的意思。您可以使用Python / Django构建您的网站,并根据登录的用户(客户端)提供各种自定义选项。例如,高级客户端可以启用多个高级选项,但它仍然是相同代码库的一部分。只是某些客户
Django拥有大量用于用户管理,权限和群组的工具。您可以为每个用户(每个客户端)授予不同的权限,这些权限决定了他们可以执行的操作。数据库访问应由您的Web应用程序管理。例如,代码确定需要在网页上显示哪些信息(取决于登录的客户端)以及该代码从数据库中检索信息。根据您的目标规模,您还可以指定应使用哪个数据库来检索信息。
答案 3 :(得分:1)
我有blog post描述了如何使用Django制作多租户SAAS Web应用程序的建议。这里的多租户意味着当用户注册时,他们拥有自己的子域。回顾一下:
current_tenant = request.tenant