Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将外部mysql数据库连接到django应用程序并进行查询_Python_Mysql_Django_Django Models_Django Views - Fatal编程技术网

Python 将外部mysql数据库连接到django应用程序并进行查询

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': '' } 引擎名称正确吗?我已经添加了所有其他细节 现在是这样吗?现在如何从该数

我需要将数据从外部MySQL数据库拉到我的应用程序中。我已在settings.py文件中将以下行添加到我的数据库字典中

'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文件中使用相同的代码即可。当然,谢谢