我有一个 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/