【问题标题】:How to change db in django depending on request.get_host()?如何根据 request.get_host() 在 django 中更改数据库?
【发布时间】:2010-03-28 08:05:17
【问题描述】:

我正在创建多站点平台。任何人都可以使用我的平台制作简单的网站。我打算使用 django multidb 支持。一个站点一个数据库。我需要根据 request.get_host() 更改数据库设置。 我认为我不是好主意。提示其他决定?它是如何在不同的网站设计师身上实现的?

【问题讨论】:

    标签: python django django-middleware django-orm


    【解决方案1】:

    您可能需要重新考虑为到达站点使用单独的数据库。在查看多数据库源时,您似乎会遇到一些可扩展性问题,具体取决于您要支持的站点数量:

    目前所有的数据库都设置在settings.py中。这可能会导致一些问题:

    • 每个新站点都需要重新加载 Django。
    • settings.py 可能会变大。

    更好的方法可能是使用单个数据库并根据需要将站点/帐户与每条记录相关联。

    【讨论】:

    • 如果它很低,并且您手动进行,您可能没问题;否则,我会使用不同的策略。
    【解决方案2】:

    您可以为每个“站点”设置一个站点,使用它自己的设置文件,监听它自己的套接字,使用相同的代码库。我正在这样做,我可以轻松地在中型服务器上支持 30 多个并发站点。配置和启动脚本的可维护性是唯一的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2023-03-22
      • 2012-03-21
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多