我有一个MySQL服务器,可以访问Django的数据库和我构建的名为"STATES“的单独数据库。我希望在我的国家数据库中查询表,并将结果(通常是几行)返回给Django以进行呈现,但我不知道最好的方法。
一种方法是直接使用Django。也许我可以将相关的表移到Django ORM数据库中?我对这样做感到紧张,因为美国数据库包含大型表(1千万行x100列),我担心会删除这些数据或以其他方式搞砸它(我对Django不太熟悉)。我还设想我应该避免为每个查询创建单独的连接,所以应该使用Django连接来查询状态表?
或者,我可以将状态数据库视为存在于完全不同的服务器上。我可以导入SQLAlchemy、创建一个连接、查询STATE.table、返回结果并关闭该连接。
哪一条更好,还是还有别的路?
发布于 2014-11-09 19:51:21
文档描述了如何通过向settings.py中的数据库添加另一个数据库("state_db")来连接多个数据库,然后我可以执行以下操作。
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,而不增加额外的复杂性。
https://stackoverflow.com/questions/26831238
复制相似问题