Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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 无法从heroku上运行的flask应用程序连接到cleardb_Python_Mysql_Heroku_Flask_Cleardb - Fatal编程技术网

Python 无法从heroku上运行的flask应用程序连接到cleardb

Python 无法从heroku上运行的flask应用程序连接到cleardb,python,mysql,heroku,flask,cleardb,Python,Mysql,Heroku,Flask,Cleardb,我正在学习flask等,并在本地创建了一个简单的应用程序。使用xammp中的本地mysql数据库,一切都很好。我将其导出到heroku上的clearDB中,并部署了我的应用程序。应用程序正在运行,但每当我试图访问依赖日志中数据库的页面时,我都会看到此错误 pymysql.err.OperationalError:2003,无法连接到“localhost”上的MySQL服务器[Errno 111]连接被拒绝 我在本地运行了这个应用程序,但是使用了clearDB数据库,它能够检索数据,没有问题。文件

我正在学习flask等,并在本地创建了一个简单的应用程序。使用xammp中的本地mysql数据库,一切都很好。我将其导出到heroku上的clearDB中,并部署了我的应用程序。应用程序正在运行,但每当我试图访问依赖日志中数据库的页面时,我都会看到此错误

pymysql.err.OperationalError:2003,无法连接到“localhost”上的MySQL服务器[Errno 111]连接被拒绝

我在本地运行了这个应用程序,但是使用了clearDB数据库,它能够检索数据,没有问题。文件中的所有内容都配置为基于heroku的URL详细信息进行访问

代码如下。我肯定还有很多其他问题,但正如我所说的,我正在学习并从一个教程中获得这些

实例化 app=烧瓶名称__ app.secret_key='secret123' 配置 app.config['MYSQL_HOST']='us-cdbr-iron-east-02.cleardb.net' app.config['MYSQL_USER']='redact' app.config['MYSQL\u PASSWORD']='redact' app.config['MYSQL_DB']=“heroku_0c6326c59d8b6e9” app.config['MYSQL\u CURSORCLASS']='DictCursor'游标是一个连接,用于让我们运行查询方法。我们把它当作一本字典 初始化MySQL mysql=MySQLapp,cursorclass=DictCursor url端点 @应用程序路径“/” 启动应用程序的功能 def索引: 可以直接返回HTML 返回渲染模板'index.html' @app.route'/about' 关于: 返回渲染模板'about.html' 许多文章 @app.route'/articles' def条款: 创建光标 cur=mysql.get_db.cursor执行命令 当前执行myflaskapp 获取文章 结果=cur.executeSELECT*FROM articles 应将所有内容作为字典检索 articles=cur.fetchall 如果结果>0: 返回呈现模板'articles.HTML',articles=articles 其他: msg='未找到文章' 返回呈现模板'articles.HTML',msg=msg 当前关闭
正如您从错误中看到的:pymysql.err.OperationalError:2003,无法连接到“localhost”上的MySQL服务器[Errno 111]连接被拒绝MySQL尝试连接到localhost服务器,这意味着它不会加载您的配置变量

如果您使用flask扩展从加载MySQL,那么您可能忘记了初始化应用程序pip安装flask MySQL

代码的开头现在应该是这样的

注意配置变量的名称,扩展使用稍微不同的约定

from flask import Flask
from flaskext.mysql import MySQL

#instaniation
app = Flask(__name__)
app.secret_key= 'secret'

#config
app.config['MYSQL_DATABASE_USER'] = 'user'
app.config['MYSQL_DATABASE_PASSWORD'] = 'password'
app.config['MYSQL_DATABASE_DB'] = 'db'
app.config['MYSQL_DATABASE_HOST'] = 'host'

#init MySQL
mysql = MySQL()
mysql.init_app(app)

正如您从错误中看到的:pymysql.err.OperationalError:2003,无法连接到“localhost”上的MySQL服务器[Errno 111]连接被拒绝MySQL尝试连接到localhost服务器,这意味着它不会加载您的配置变量

如果您使用flask扩展从加载MySQL,那么您可能忘记了初始化应用程序pip安装flask MySQL

代码的开头现在应该是这样的

注意配置变量的名称,扩展使用稍微不同的约定

from flask import Flask
from flaskext.mysql import MySQL

#instaniation
app = Flask(__name__)
app.secret_key= 'secret'

#config
app.config['MYSQL_DATABASE_USER'] = 'user'
app.config['MYSQL_DATABASE_PASSWORD'] = 'password'
app.config['MYSQL_DATABASE_DB'] = 'db'
app.config['MYSQL_DATABASE_HOST'] = 'host'

#init MySQL
mysql = MySQL()
mysql.init_app(app)

非常感谢,解决了这个问题。现在我可以处理其他问题了,但是你给了我一些可以继续的东西。非常感谢,这解决了这个问题。现在我可以做其他的了,但是你现在给了我一些可以继续的东西。