Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django使用与ORM数据库相同的连接查询MySQL数据库_Python_Mysql_Django_Database_Orm - Fatal编程技术网

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

Python 使用Django使用与ORM数据库相同的连接查询MySQL数据库,python,mysql,django,database,orm,Python,Mysql,Django,Database,Orm,我有一个MySQL服务器,提供对Django ORM数据库和我构建的名为“STATES”的单独数据库的访问。我想查询STATES数据库中的表,并将结果(通常是几行)返回给Django进行渲染,但我不知道最好的方法 一种方法是直接使用Django。也许我可以将相关的表移动到Django ORM数据库中?我对这样做感到紧张,因为STATES数据库包含大型表(1000万行x100列),我担心删除这些数据或以其他方式将其弄乱(我对Django不是很有经验)。我还认为我应该避免为每个查询创建单独的连接,所

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

一种方法是直接使用Django。也许我可以将相关的表移动到Django ORM数据库中?我对这样做感到紧张,因为STATES数据库包含大型表(1000万行x100列),我担心删除这些数据或以其他方式将其弄乱(我对Django不是很有经验)。我还认为我应该避免为每个查询创建单独的连接,所以我应该使用Django连接来查询状态表

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

哪个更好,或者有其他路径?

描述如何通过在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而不增加额外的复杂性