您可以通过一些文章/应用程序向我提供建议,这些文章/应用程序允许您使用Python和Django创建SaaS(软件即服务)应用程序。如何使用Python和Django创建SaaS应用程序
眼下的一般性议题,我不明白是:
- 你有一个为所有客户或工作申请每个客户端一个应用
- 你如何管理数据库访问权限或不同的DB为每个客户端
- 是否有任何允许您将一个应用程序转换为SaaS的
您可以通过一些文章/应用程序向我提供建议,这些文章/应用程序允许您使用Python和Django创建SaaS(软件即服务)应用程序。如何使用Python和Django创建SaaS应用程序
眼下的一般性议题,我不明白是:
我使用下面的:
虽然不是必要的,下面将在长期内帮助:
最后,很高兴有
如果你在3 + 4周围有一个可配置的Cms /框架,我会为此付钱。 – 2013-07-10 22:27:06
你为什么喜欢django-userprofiles? – 2014-08-01 13:29:32
P.s.其中一些是GPL(例如Ikari,Billing)。我不知道这是否使事情复杂化。 – 2014-08-01 13:36:12
软件即服务只是一种营销手段词,它在技术上没有什么不同来自可通过互联网访问的服务器。所以问题3没有意义。这让我们留下了问题1和问题2:
在这种情况下,'app'是什么意思?您的Web应用程序(使用Python和Django构建)可以具有多个Django应用程序(构成Web应用程序的组件),但我认为这不是您的意思。您可以使用Python/Django构建网站,并根据哪个用户(客户端)登录有各种自定义选项。例如,高级客户端可以启用多个高级选项,但它仍然是同一代码库的一部分。这只是某些选项(按钮/控件等)不显示某些客户端
Django有大量用于用户管理,权限和组的工具。您可以为每个用户(每个客户端)授予不同的权限,这些权限决定他们可以执行的操作。数据库访问应该由您的Web应用程序管理。例如,代码确定需要在网页上显示哪些信息(取决于哪个客户端登录),并且该代码从数据库中检索信息。根据您要达到的规模,您还可以指定应使用哪个数据库从中检索信息。
当然,问题3是有意义的(至少目前它读取的内容) - 转换“一个应用程序”可能意味着一个Windows GUI应用程序,一个unix命令行应用程序或任何数量的东西。 – 2017-01-03 19:38:02
一个非常基本的例子,你将如何去做。
假设您有一个旨在解决特定商业案例的简单应用程序。例如,您创建了一个应用程序来处理您办公室的房间预订。
“转换”这个程序为服务您必须配置它使得大多数应用程序的用户特定的零件是参数(它们可以“模板化” - 由于缺乏更好的词)。
这是如何转换前端。您可以创建变量来保存应用程序的徽标,标题,预告片和配色方案;允许每个用户定制他们的实例。
到目前为止,您的应用程序能够在前端自行定制。它仍在使用第一阶段设计的相同数据库。
现在只显示那些与特定用户相关的字段。这将参数化数据库。所以你可能会添加一个标识每一行属于特定用户的列;然后创建基于登录用户筛选记录的视图或存储过程。
现在应用程序可以“租”出来;因为您可以根据用户自定义实例。
然后它会从这里变得更大 - 取决于您的应用程序的规模,类型和预期的定制。当每个用户拥有自己的专用数据库而不是存储过程+视图组合时,您可能会认为您的应用程序性能更好。
您可能会决定对于某些用户类型(或“包”),您需要运行应用程序的专用实例。因此,对于“高级”或“超”用户,您希望拥有自己的专用系统。
如果您的应用程序需要大量存储 - 您可能会决定单独收取存储费用。
底线是它与所使用的语言无关。它更多的是架构和设计问题。
我有一个blog post描述我如何去ab的建议使用Django制作多租户SAAS Web应用程序。这里的多租户意味着当用户注册时,他们有他们的子域。回顾:
current_tenant = request.tenant
*.abc.com
链接到你的服务器的IP地址添加您的cPanel内的一个记录
它如果你在4年后发布你自己的反馈意见,这将会非常有趣。如果你继续在这个项目上工作。谢谢。 – 2016-04-21 10:31:38
@imanis_tn好,4年后很多东西发生了,但这里是重要的一部分。 我在一个名为Get A Newsletter的SaaS应用程序上工作。我们使用Django REST框架来构建我们的API,但没有使用任何特殊的东西。每个用户没有子域,内部计费系统,我们手动处理每个对象的权限。 实际上,当我加入上述项目时,系统已经启动并运行,并且我们刚刚开始创建REST Api,因此我们主要受现有代码库限制,但结果非常好。 – 2016-04-22 06:52:33