在Django中不使用模型从(MySQL)数据库加载数据

2 投票
3 回答
1567 浏览
提问于 2025-04-18 11:08

有没有办法在Django中直接从一个(在这个例子中是MySQL)表里加载数据,而不需要先创建一个模型?

我正在做一个网站,其中有一个部分需要用到从第三方购买的数据表。虽然我关注的列可能会保持不变,但这个表的结构可能会随着数据集的更新而变化。而且这个表的列非常多,所以我不想一个一个地在模型里输入每个字段。我也希望能保持这个表的原样,所以创建一个模型来表示我感兴趣的列并不是一个理想的解决方案。

理想情况下,我希望能把这个表放在某个数据库里(可能和主网站的数据库分开),然后直接用SQL来访问它的内容。

3 个回答

0

我想你可以使用任何适合Python的SQL库。例如:http://www.sqlalchemy.org/

接下来,你只需要连接到你的数据库,执行你的请求,然后随意使用数据。我觉得如果不使用Django的模型系统,你可能无法使用Django,但这并不妨碍你同时使用其他库来处理这些事情。

1

Django中,有一个叫做inspectdb的功能。对于像MySQL这样的旧数据库,它可以通过检查你的数据库表自动生成模型。这些模型会保存在我们的应用文件中,文件名是models.py。这样我们就不需要手动输入所有的列了。不过,在创建模型之前,最好仔细阅读文档,因为这可能会影响数据库中的数据……希望这对你有帮助。

4

你可以直接对数据库执行原始的SQL语句,具体可以参考这份文档

撰写回答