【问题标题】:Loading data from a (MySQL) database into Django without models将数据从(MySQL)数据库加载到没有模型的 Django
【发布时间】:2014-08-16 21:36:37
【问题描述】:

这听起来有点奇怪 - 但是否可以从一个(在本例中为 MySQL)表中加载数据以在 Django 中使用而无需存在模型?

我意识到这并不是真正的 Django 方式,但考虑到我目前的情况,我真的不知道如何更好地解决问题。

我正在开发一个网站,该网站一方面使用从第三方购买的数据表。感兴趣的列可能会保持稳定,但是表的结构可能会随着数据集的后续更新而改变。该表也很大(就列而言) - 所以我不热衷于逐个输入模型中的每个字段。我还想保持表格完好无损 - 所以提出一个代表我感兴趣的列集的模型并不是一个理想的解决方案。

理想情况下,我希望将此表放在某个数据库中(可能与主站点数据库分开)并使用 SQL 直接访问其内容。

【问题讨论】:

    标签: python mysql django webproject


    【解决方案1】:

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

    您只需连接到您的数据库,执行您的请求并随意使用数据。我认为没有模型系统就无法使用 Django,但没有什么能阻止您并行使用另一个库。

    【讨论】:

    • 见 Daniel Roseman 的回答,更好的解决方案。检查文档时我错过了这部分。
    【解决方案2】:

    您始终可以直接对数据库执行原始 SQL:请参阅 the docs

    【讨论】:

    • 谢谢 - 这是我期待的解决方案。我只是想看看是否还有其他方法。自从发布这个问题以来,我在 SO 上遇到了another post,我认为这可能有助于我实现我想做的事情。
    【解决方案3】:

    Django 中有一个名为inspectdb 的功能。对于 MySQL 等遗留数据库,它会通过检查您的数据库表来自动创建模型。它以 models.py 的形式存储在我们的应用文件中。所以我们不需要手动输入所有列。但是在创建模型之前仔细阅读文档,因为它可能会影响数据库数据......我希望这对你有用。

    【讨论】:

    • 这就是我在对已接受答案的评论中引用的解决方案。不过感谢您的建议。
    猜你喜欢
    • 2016-08-23
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多