Python 将外部mysql数据库连接到django应用程序并进行查询
我需要将数据从外部MySQL数据库拉到我的应用程序中。我已在settings.py文件中将以下行添加到我的数据库字典中Python 将外部mysql数据库连接到django应用程序并进行查询,python,mysql,django,django-models,django-views,Python,Mysql,Django,Django Models,Django Views,我需要将数据从外部MySQL数据库拉到我的应用程序中。我已在settings.py文件中将以下行添加到我的数据库字典中 'cust': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cust_data', 'HOST': '', 'USER': '', 'PASSWORD': '' } 引擎名称正确吗?我已经添加了所有其他细节 现在是这样吗?现在如何从该数
'cust': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cust_data',
'HOST': '',
'USER': '',
'PASSWORD': ''
}
引擎名称正确吗?我已经添加了所有其他细节
现在是这样吗?现在如何从该数据库获取数据?我可以在我的applications views.py中简单地使用SQL查询吗
现在,当我使用下面的命令进入shell时
python manage.py shell
当我对MySQL数据库执行查询时,它不起作用。我肯定我错过了一些东西
我被困在这里,我做错了什么?如何运行命令访问上述数据库中特定表中的数据?常量变量错误。您必须声明
数据库
变量
在您的settings.py中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'myhost'
}
}
用正确的值替换占位符。常量变量错误。您必须声明
数据库
变量
在您的settings.py中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'myhost'
}
}
只需将占位符替换为正确的值。您的外部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()方法,它应该以元组形式返回结果
您可以从官方网站上查阅更多信息。您的外部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()方法,它应该以元组形式返回结果
您可以从官方网站上查阅更多信息。我想您弄错了,我的应用程序使用了多个数据库,我已经有了一个默认数据库集,这是我的第二个数据库。有关详细文档,请参阅此链接。我认为您在这里搞错了,我的应用程序使用了多个数据库,我已经有了一个默认数据库集,这是我的第二个数据库。有关详细文档,请参阅此链接。这看起来很完美,因此在配置my settings.py之后,我可以直接使用Lee提到的上述代码行吗?或者我需要配置其他东西吗?是的。您可以在shell中尝试上面提到的代码(shell通过命令
python manage.py shell
)以查看它是否可以从数据库中获得结果。如果它返回预期的结果,您只需在py文件中使用相同的代码即可。当然,谢谢。这看起来很完美,因此在配置my settings.py后,我可以直接使用Lee提到的上述代码行吗?或者我需要配置其他东西吗?是的。您可以在shell中尝试上面提到的代码(shell通过命令python manage.py shell
)以查看它是否可以从数据库中获得结果。如果它返回预期的结果,您只需在py文件中使用相同的代码即可。当然,谢谢