作者:繁华落尽的星空 | 来源:互联网 | 2022-12-05 22:00
我需要从我的Django应用程序查询由另一个应用程序控制的数据库.理想情况下,我还想修改一些值.
我已经在Django中配置了一个辅助数据库连接,但因为这些表是在别处控制的,所以它们并不适合Django的ORM.我宁愿在我的Django应用程序中进行简单的SQL查询.
这可能吗?
1> Mikhail Burs..:
您有两种选择:
无ORM:
只需为第二个数据库安装和导入Python驱动程序(MySQLdb
对于MySQL,psycopg2
对于PostgreSQL等),然后创建一个连接并运行纯SQL查询而不使用任何Django.有关详细信息,请参阅各自数据库驱动程序的文档.
ORM-FUL:
在您的settings.py
:添加第二个数据库:
DATABASES = {
'default': {
# your Django db settings here
},
'second': { # any name can be used
# your second db settings here
}
}
使用Django ORM定义模型,不要忘记在模型中设置managed = False
和更正.table_name
Meta
使用查询第二个数据库 ModelInSecondDb.objects.using('second').all()
(可选)添加一个数据库路由器类,该类会自动将这些模型的所有查询定向到您的second
数据库.