【问题标题】:How to use same django project multiple times - each with diffrent database?如何多次使用同一个 django 项目 - 每个项目都有不同的数据库?
【发布时间】:2014-11-01 19:35:37
【问题描述】:

我编写了一个 django 项目,它是某种 CMS。 现在,我希望能够创建多个使用该 CMS 的帐户,每个帐户都有不同的数据库。 例如,用户可以在我的服务中为自己创建一个帐户 - 他将获得一个基于该 CMS 的网站。 我怎样才能开始这样做?

【问题讨论】:

    标签: python django


    【解决方案1】:

    不幸的是,Django 不适合在运行时动态切换数据库。您要么必须实现真正骇人听闻的解决方案(就像在这个问题 Django multiple and dynamic databases 中提到的那样),要么使用几个独立的 Django 实例,您必须在服务器上动态启动这些实例。

    一个更简单的解决方案是坚持一个数据库并通过其他方式区分不同用户的内容,例如Django Sites framework。我认为这种方法的唯一问题是您必须仔细设置管理站点配置,以便用户看不到彼此的对象(以防您计划使用内置的 Django 管理)。

    【讨论】:

    • 让我们使用第二种解决方案 - 例如,如果我们有一个包含博客帖子的表,每个帖子都会有一行描述它与哪个帐户相关?不是超级安全漏洞吗?假设我们有 10 万篇博文,每次运行数据库都会很慢,不是吗?
    • 您在哪里看到了安全漏洞?几乎每个站点都以这种方式区分不同用户的内容。您不希望 Stack Overflow 有一个单独的数据库来存储您的问题,对吗?至于性能问题,肯定会慢一些,但实际上在索引整数字段上的搜索速度非常快(并且外键总是被索引),所以我真的不认为这应该是一个问题。
    【解决方案2】:
    猜你喜欢
    • 2015-06-28
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2020-05-14
    • 2018-02-19
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多