我需要从Django应用程序查询由另一个应用程序控制的数据库。理想情况下,我还要修改一些值。
我已经从Django内部配置了辅助数据库连接,但是由于表是在其他位置控制的,因此它们不能很好地适合Django的ORM。我宁愿在Django应用程序中进行简单的SQL查询。
这可能吗?
答案 0 :(得分:5)
您有两个选择:
无ORM:
只需为第二个数据库(对于MySQL,MySQLdb
,对于PostgreSQL,psycopg2
)安装并导入Python驱动程序,然后创建连接并运行纯SQL查询,而无需使用Django。有关详细信息,请参见相应数据库驱动程序的文档。
具有ORM功能的
:在您的settings.py
中添加另一个数据库:
DATABASES = {
'default': {
# your Django db settings here
},
'second': { # any name can be used
# your second db settings here
}
}
managed = False
中设置table_name
和正确的Meta
。ModelInSecondDb.objects.using('second').all()
second
数据库。答案 1 :(得分:0)
您可以在Django设置中定义其他数据库配置,例如:
DATABASES = {
'default': {},
'another_db' : {
...
}
}
在django ORM中,您可以执行以下操作:
another_db_table.objects.using('another_db').all()