python - 使用 Django 使用与 ORM 数据库相同的连接来查询 MySQL 数据库

标签 python mysql django database orm

我有一个 MySQL 服务器,提供对 Django ORM 数据库和我构建的名为“STATES”的单独数据库的访问。我想查询 STATES 数据库中的表并将结果(通常是几行)返回到 Django 进行渲染,但我不知道执行此操作的最佳方法。

一种方法是直接使用 Django。也许我可以将相关表移至 Django ORM 数据库中?我对此感到紧张,因为 STATES 数据库包含大型表(1000 万行 x 100 列),并且我担心删除该数据或以其他方式弄乱它(我对 Django 不太有经验)。我还想我应该避免为每个查询创建单独的连接,所以我应该使用 Django 连接来查询 STATE 表?

或者,我可以将 STATE 数据库视为存在于完全不同的服务器上。我可以导入 SQLAlchemy,创建连接,查询 STATE.table,返回结果,然后关闭该连接。

哪个更好,或者还有其他途径吗?

最佳答案

docs描述如何通过将另一个数据库(“state_db”)添加到 settings.py 中的 DATABASES 来连接到多个数据库,然后我可以执行以下操作。

from django.db import connections
def query(lname)
    c = connections['state_db'].cursor()
    c.execute("SELECT last_name FROM STATE.table WHERE last_name=%s;",[lname])
    rows = c.fetchall()
    ...  

这比我预期的要慢,但我猜这已经接近最佳状态,因为它使用开放连接和 Django,而没有增加额外的复杂性。

关于python - 使用 Django 使用与 ORM 数据库相同的连接来查询 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26831238/

相关文章:

python - Google 云打印 - Python 代码示例 - GaiaLogin 返回 None

python - 告诉 urllib2 使用自定义 DNS

mysql - 如何按周计算和分组项目

php - Windows Server 上的 PDOException

javascript - 如何将 python/Django 列表/字典转换为 javascript

python - 如何为用户建立配置文件 View ,该 View 还允许更新其信息

django 使用链接下载 csv 文件

javascript - Python 使用多个键对 JSON 对象进行分组

python - PySpark - 根据另一列中引用的列名称创建列

php - 如何从给定的 MySQL 表中获取列名?