gpt4 book ai didi

python - 具有外部数据库的 Django 模型

转载 作者:行者123 更新时间:2023-12-01 04:54:32 29 4
gpt4 key购买 nike

我有一个典型的 Django 项目,其中有一个主数据库,我在其中保存所需的所有数据。

假设某个地方有另一个数据库,其中包含一些附加信息。该数据库与我的 Django 项目没有直接关系,因此我们假设我什至没有对其进行控制。

问题是我不知道是否需要为这个外部数据库创建和维护一个模型,以便我可以使用 Django 的 ORM。或者,也许最好的解决方案是使用原始 SQL 从外部数据库获取数据,然后使用此 ifo 使用 ORM 或直接在 View 中过滤主数据库中的数据。

创建模型的解决方案似乎相当不错,但事实上数据库不是我的项目的一部分,这意味着我不知道可能的架构更改,并且看起来这是一个不好的做法。

所以最后,如果我有一些与我的项目无关但需要的外部资源(例如数据库),我应该:

  • 尝试为他们创建 django 模型
  • 使用原始 SQL 从外部数据库获取信息,然后使用它通过 ORM 过滤来自主数据库的数据,并根据需要直接在 View 中使用数据
  • 对主数据库和外部数据库使用原始 SQL,它们在应用逻辑中交叉

最佳答案

另一种方法是使用 SQLAlchemy对于外部数据库。它可以使用reflection在运行时生成与 SQLAlchemy 等效的 django 模型。

它仍然不会没有问题。如果您的代码依赖于某个列,那么如果该列被删除或以不兼容的方式更改,它仍然会中断。但是,它将为您的数据库交互增加一点灵 active ,例如如果 int 列更改为 varchar 列,Django 模型肯定会崩溃,但是使用数据库反射,只有当您的代码依赖于它是这样的事实时,它才会崩溃。一个int。如果您只是显示数据或其他内容,它将保持完整的功能。然而,更改总是有可能不会破坏系统,但会导致意外的行为。

如果像 Benjamin 所说的那样,外部系统有 API,那将是首选。

关于python - 具有外部数据库的 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742457/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com