相关疑难解决方法(0)

Django会扩展吗?

我正在构建一个Web应用程序__CODE__.我选择的原因__CODE__是:

  • 我想使用免费/开源工具.
  • 我喜欢__CODE__并觉得这是一种长期的语言,而对于__CODE__我不确定,__CODE__似乎是一个很难学的麻烦.
  • 我正在构建一个想法的原型,并没有过多考虑未来.发展速度是主要因素,我已经知道了__CODE__.
  • __CODE__如果我将来选择这样做,我知道迁移会更容易.
  • 我听说__CODE__"很好".

现在我正在考虑发表我的作品,我开始关注规模.我发现的关于扩展能力的唯一信息__CODE__是由__CODE__团队提供的(我没有说什么可以忽视它们,但这显然不是客观信息......).

我的问题:

  • 什么是__CODE__今天建立的"最大"网站?(我主要通过用户流量测量大小)
  • 每天可以__CODE__处理10万用户,每次访问网站几个小时?
  • 一个网站__CODE__可以在Django上运行吗?

python django scalability web-applications

1101
推荐指数
23
解决办法
18万
查看次数

django上多租户应用的最优架构

我一直在思索基于Django创建多租户应用程序的正确/最佳方式.

一些解释:

  • 应用程序可以由几个租户使用(tenant1,tenant2,...,).

  • 必须保护所有租户个人数据不被其他租户(及其用户)访问.

  • 租户可以选择为应用程序对象创建其他自定义字段.

  • 当然,底层硬件限制了一个"系统"上的租户数量.

1)通过例如子域和在底层中使用特定于租户的数据库来分离每个租户

2)在模型中使用一些租户ID来分离数据库中的租户数据

我正在考虑部署过程,系统部件的性能(Web服务器,数据库服务器,工作节点,...)

什么是最好的设置?专业人士和骗子在哪里?

你怎么看?

architecture django multi-tenant

61
推荐指数
1
解决办法
6759
查看次数

Django多个动态数据库

我一直在评估django,并想知道以下是否可行.我已经查看了常规的多个数据库文档,所以请不要指出我,因为我的功能并没有提到这个用例.如果我错了我就把它拿回来:)

我想要一个主要数据库,我的应用程序的大部分模型都将驻留在该主数据库中,但是其中一个应用程序需要动态创建数据库,这些数据库将是客户特定的数据库.

数据库路径(我计划使用sqlite)将存储在主数据库中,因此需要更改游标,但模型将保持不变.

我欢迎任何关于如何实现这一目标的想法?

django django-database

32
推荐指数
2
解决办法
1万
查看次数

多租户Django应用程序:根据请求改变数据库连接?

我正在寻找其他人尝试使用数据库级隔离来构建多租户Django应用程序的工作代码和想法.

更新/解决方案:我在一个新的开源项目中结束了解决这个问题:请参阅django-db-multitenant

目标

我的目标是在请求进入单个应用服务器(WSGI前端,如gunicorn)时根据请求主机名或请求路径多路复用请求(例如,foo.example.com/将Django连接设置为使用数据库foo,并bar.example.com/使用数据库bar).

先例

我知道Django中有一些现有的多租户解决方案:

  1. django-tenant-schemas:这非常接近我想要的:你以最高优先级安装它的中间件,并向SET search_pathdb 发送命令.不幸的是,这是Postgres特有的,我坚持使用MySQL.
  2. django-simple-multitenant:这里的策略是为所有模型添加"租户"外键,并调整所有应用程序业务逻辑以关键.基本上每一行都被索引(id, tenant_id)而不是(id).我尝试过,并且不喜欢这种方法有很多原因:它使应用程序更复杂,可能导致难以发现的错误,并且它不提供数据库级别的隔离.
  3. 每个租户一个{app server,django设置文件,其中包含适当的db}.阿卡穷人的多租户(实际上富人,考虑到它所涉及的资源).我不想为每个租户启动一个新的应用服务器,并且为了可扩展性,我希望任何应用服务器都能够为任何客户端分派请求.

思路

到目前为止,我最好的想法是做一些类似的事情django-tenant-schemas:在第一个中间件中,抓住django.db.connection并摆弄数据库选择而不是模式.在集合/持久连接方面,我还没有想过这意味着什么

我追求的另一个死胡同是特定于租户的表前缀:除了我需要它们是动态的,即使是Django中也不容易实现全局表前缀(参见被拒绝的票证5000等).

最后,Django 多数据库支持允许您定义多个命名数据库,并根据实例类型和读/写模式在它们之间进行多路复用.没有帮助,因为没有工具可以按请求选择数据库.

有没有人管理类似的东西?如果是这样,你是如何实现它的?

mysql django multi-tenant

31
推荐指数
2
解决办法
5839
查看次数

如何使用Python和Django创建SaaS应用程序

您能否向我推荐一些允许您使用Python和Django创建SaaS(软件即服务)应用程序的文章/应用程序.

目前我不了解的一般主题是:

  1. 您是否有一个适用于所有客户的工作应用程序或每个客户端一个应用
  2. 如何为每个客户端管理数据库访问,权限或不同的数据库
  3. 是否有任何工具可以将一个应用程序转换为SaaS

python django saas

24
推荐指数
4
解决办法
2万
查看次数

Python/Django多租户解决方案

我可以使用一些帮助为我正在进行的项目创建攻击计划.

想象一下,该网站是一个负责监管遍布全球的区域销售办事处的团队.该项目的目的是让超级用户快速启动特定于每个办公室的新子站点 - 频繁添加站点.办公室子站点应完全包含特定于该子站点的"管理员"用户,并且应该是用户友好的CMS.超级用户应该能够介入并管理所有这些办公室子站点.

除了独立的办公室子站点实例之外,还需要每个子站点管理联系人,潜在客户等,并将其存储在超级用户的一个中心区域中.

我使用Django完成了一些网站,但从来没有任何多租户.我想了解可能有用的技术或教程/文档的建议.

要求:

  1. 每个子站点使用相同的源(模板,JS,可用功能等),但可以进行修改以反映模板中的自定义内容.
  2. 为每个子站点分配的子域(可选择使用完全限定的域),在项目中配置,而不是在硬编码的设置文件中.
  3. 除了可以访问所有子站点的超级用户之外,还有子站点特定的用户访问控制.
  4. 能够为每个子站点提供"独立"的CMS.即,子站点管理员只能看到他们的内容.我对这个项目的偏好是django-cms,但我愿意接受建议.
  5. 支持从所有子站点汇集数据的应用程序,但将子站点"管理员"限制为仅将其记录查看到该应用程序中.

考虑到上述情况,您会推荐什么方法?我愿意重新考虑技术,但我想坚持使用Python.

python django multi-tenant

10
推荐指数
2
解决办法
8418
查看次数