微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python Flask-Mysql KeyError:'MYSQL_HOST'

如何解决Python Flask-Mysql KeyError:'MYSQL_HOST'

我正在构建一个 python flask-MysqL 应用程序。我正在使用 AWS cloud9 构建它。但是当我运行代码时,我收到了 MysqL_HOST 键错误。 我在下面附上代码。 是因为安装错误还是代码错误。?`

from flask import Flask,request,render_template
from flask_MysqLdb import MysqL


application = Flask(__name__)

application.config['MysqL_HOST'] = 'localhost'
application.config['MysqL_USER'] = 'nfhfjfn'
application.config['MysqL_PASSWORD'] = 'fsfc'
application.config['MysqL_DB'] = 'fsvf'
application.config['MysqL_CURSORCLASS'] = 'DictCursor'
MysqL = MysqL(application)
# MysqL.init_app(application)

application = Flask(__name__)

@application.route("/")
def hello():
    cursor = MysqL.connect().cursor()
    cursor.execute("SELECT * from LANGUAGES;")
    MysqL.connection.commit()
    languages = cursor.fetchall()
    languages = [list(l) for l in languages]
    return render_template('index.html',languages=languages)
    
    
if __name__ == "__main__":
    application.run(host='0.0.0.0',port=8080,debug=True)

`

解决方法

您拨打了 application = Flask(__name__) 两次。因此,您第二次覆盖第一个 application。应该是:

from flask import Flask,request,render_template
from flask_mysqldb import MySQL


application = Flask(__name__)

application.config['MYSQL_HOST'] = 'localhost'
application.config['MYSQL_USER'] = 'nfhfjfn'
application.config['MYSQL_PASSWORD'] = 'fsfc'
application.config['MYSQL_DB'] = 'fsvf'
application.config['MYSQL_CURSORCLASS'] = 'DictCursor'
mysql = MySQL(application)
# mysql.init_app(application)

#application = Flask(__name__) <--- remove that

@application.route("/")
def hello():
    cursor = mysql.connect().cursor()
    cursor.execute("SELECT * from LANGUAGES;")
    mysql.connection.commit()
    languages = cursor.fetchall()
    languages = [list(l) for l in languages]
    return render_template('index.html',languages=languages)
    
    
if __name__ == "__main__":
    application.run(host='0.0.0.0',port=8080,debug=True)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。