我需要将数据从外部 MySQL 数据库提取到我的应用程序。我已将以下行添加到 settings.py 文件中的数据库字典中。
'cust': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cust_data',
'HOST': '',
'USER': '',
'PASSWORD': ''
}
发动机名称正确吗?我已添加所有其他详细信息。
现在是这样吗?现在我怎样才能从这个数据库中获取数据呢?我可以在应用程序的views.py 中简单地使用SQL 查询吗?
现在当我使用以下命令进入 shell 时
python manage.py shell
当我对 MySQL 数据库执行查询时,它不起作用。我确信我在这里遗漏了一些东西。
我被困在这里,我在这里做错了什么?如何运行命令来访问上述数据库中特定表的数据?
您的外部 MySQL 数据库似乎未映射到您的 Django 模型。在这种情况下,您必须使用 django.db.connection 对象来连接数据库并直接执行原始 SQL 查询。您可以在views.py中使用查询结果,但最好考虑views.py是否是执行查询操作的正确位置。
要在 python shell 中测试查询,您可以尝试以下方式:
>>> from django.db import connections
>>> cursor = connections['cust'].cursor() # Replace 'cust' to other defined databases if necessary.
>>> cursor.execute("YOUR SQL QUERY HERE")
>>> cursor.fetchall()
对于方法
fetchall()
,它应该以元组形式返回结果。
您可以从这里参考官方网站的更多信息。
常量变量错误。您必须声明
DATABASES
变量。
在你的settings.py中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'myhost'
}
}
只需将占位符替换为正确的值即可。