gpt4 book ai didi

python - 如何使用 Django 查询多种数据库类型?

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:50 25 4
gpt4 key购买 nike

我正在尝试构建一个基于 Django 的网页(我了解 Python 并想开发几个基于 Web 的应用程序)。此页面的目标是显示来自几个我只有读取权限的不同数据库的数据。基本上,它是几个关键事项的仪表板类型 View 。

我构建了一个 Sqlite 数据库来保存应用程序的 Django 设置。我如何从这里分支出来?我想查询 Oracle 数据库和 MySQL 数据库?

我可以在适当的 View 中使用类似这样的方法单独查询它们:

def test(request):
from django.db import load_backend
myBackend = load_backend('django.db.backends.oracle') # or 'mysql', 'sqlite3', 'oracle'
myConnection = myBackend.DatabaseWrapper({
'HOST': 'myhost',
'NAME': 'mysid',
'OPTIONS': {},
'PASSWORD': "mypass",
'PORT': "1521",
'USER': "myuser",
'TIME_ZONE': "America/Chicago"})

# Now we can do all the standard raw sql stuff with myConnection.
myCursor = myConnection.cursor()
myCursor.execute("SELECT COUNT(1) FROM schema.table;")
return HttpResponse("%s." % myCursor.fetchone())

在模板中我可以显示这个计数。但是,根据我查询 Sqlite 数据库的方式,这似乎是不正确的。

我想使用数据模型。当我只是在读取数据时,这是适合使用的东西吗?该帐户没有对 oracle/mysql 表的写入权限。

有没有办法为现有表格自动生成这些模型?其中一些表的列数相当大,如果可能的话,我更愿意自动创建以防止我出错。

最佳答案

对于多数据库支持,请参阅 Django documentation .总之,您将每个数据库的连接信息添加到您的 DATABASES 设置中,然后设置路由器以确定每个数据库处理哪些应用程序/模型。

要从现有数据库表生成模型,您可以使用 inspectdb management command .但是,Django 没有使用此命令明确列出对 Oracle 数据库的支持,因此您可能需要自行解决。

关于python - 如何使用 Django 查询多种数据库类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com