【问题标题】:Multi-tenant SAAS in DjangoDjango 中的多租户 SAAS
【发布时间】:2014-03-13 08:11:07
【问题描述】:

我用 PHP/Laravel 开发了多租户 SAAS 应用程序,但最近我遇到了一个挑战,用 Django/Python 开发一个。不过,我仍在学习 Django,我真的很喜欢 Django REST 框架 (DRF)。但是我很难弄清楚下面突出显示的区域,如果有人显示一些亮点,我会很高兴:

  1. 如何处理子域/域并选择合适的租户数据库
  2. 如何在 django 中管理和动态处理不同的数据库
  3. 仍然可以从 Django 管理界面管理多租户应用程序后端
  4. 我将使用队列和其他应用程序缩放技术,需要提示和技巧(如果有)
  5. 任何例子
  6. 通过 Django 开发 SAAS 时的任何挑战体验

【问题讨论】:

  • 看看您的问题可能重复:[Python / Django 多租户解决方案][1] [1]:stackoverflow.com/questions/19230734/…
  • 是的,但我意识到 django-tenant-schemas 只与 PostgreSQL 相关联。无论如何,您可以处理 MySQL 并正确处理域

标签: python django web-applications database-design saas


【解决方案1】:

嗯……

  1. django-subdomains
  2. arepeople 在 SO 中询问了有关 django 中动态数据库的问题(包括,咳咳……me)。我不完全确定我理解您所说的“动态处理不同的数据库”是什么意思,所以我想只需转到我刚才提到的链接并为您的项目挑选最好的链接。 (也 - 也许是this is more relevant?)
  3. 查看django-multitenant-schemasthis answer too
  4. Disqus(世界上最大的 django 应用程序之一)背后的人 a video 解释了他们如何处理缩放。这里是another interesting article 的主题。还有传说中的 SO 问题Does Django Scale
  5. (和 6.)查看 this answer

我希望这已经足够详细了。我知道这可能是一个令人失望的唯一链接答案,但这就是现实——Django 是一个较新的框架,使用 python 进行 Web 开发仍然不如 php 常见。考虑到这一点,请理解,尽管 django 非常棒(而且它很棒),但对于更复杂的需求,您需要自己做更多的事情。

在这种情况下,您必须弄清楚如何分别完成每个部分,然后将它们全部组合起来。例如,您可以轻松找到创建 REST django 应用程序的方法,但随后您需要弄清楚如何将其与另一个包(例如上述子域)结合起来。

你可以找到一百万个使用 django 做怪事的例子。它真的很强大(当我了解到dynamic models 时,我被震撼了)。但是您的应用程序越复杂,您需要自己做的事情就越多。

拿起它,一次一步,然后回到 SO 来解决您遇到的具体问题(或django users google group)。祝你好运!

【讨论】:

  • 我已经阅读了所有建议,我这可能接近答案但还不够。我已经意识到 Django ORM 绑定到数据库的方式并没有给你很大的灵活性来轻松地以你想要的方式操作东西。您是否知道将上述大部分内容一起使用的任何示例/引导程序?我想获得并遵循良好/推荐的做法。我想我可能还必须将我的数据库从 MySQL 切换到 PostgreSQL
  • 这正是我的观点——你有一个复杂需求的列表,你可以为每个需求找到很多例子,但它是你可能必须弄清楚的组合部分自己出去,因为 django 对这个社区来说还是个新手。至于切换 - 坦率地说,django 从一开始就使用 PostgreSQL 创建,后来添加了 MySQL 支持。但是我个人在使用 MySQL 和 django 方面有很好的经验,所以现在你应该尝试让它与你所知道的一起工作
  • 最后一件事 - ORM 提供了您所需的几乎所有灵活性(如果其他所有方法都失败,则允许原始 sql 查询)。这只是了解小细节的问题。不过,我不会撒谎,有一些自称更好的替代品(例如pee-wee),但我不能推荐它们。我认为在寻找替代方案之前,您应该尝试使其与 ORM 一起使用
  • 好的。感谢您提供详细信息。如果您发现任何东西,请考虑更新此帖子,以便将来对其他人有所帮助。我承诺在我从事这个项目时也会这样做。谢谢
  • 没问题!祝你好运=]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-28
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多