Flask-Mysqldb NameError:名称“ _mysql”未定义

问题描述

我已经尝试解决这个问题已有一段时间了。 我尽了我所能找到的一切,却一无所获。请帮助。

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

app = Flask(__name__)

app.config['MysqL_USER'] = 'root'
app.config['MysqL_PASSOWRD'] = 'password'
app.config['MysqL_HOST'] = 'localhost'
app.config['MysqL_DB'] = 'try_flask'

app.config['MysqL_CURSORCLASS'] = 'DictCursor'

MysqL = MysqL(app)

if __name__ == '__main__':
    app.run(debug=True)

@app.route('/employee',methods=['GET','POST'])
def employee():
    if request.method == 'GET':
        cur = MysqL.connection.cursor()
        cur.execute('''SELECT * FROM employee''')
        results = cur.fetchall()
    return jsonify(results)

这是我的代码,它总是返回: 文件“ app1.py”的第3行 从flask_MysqLdb导入MysqL 在第1行的“ /usr/local/lib/python3.8/site-packages/flask_MysqLdb/init.py”文件中 导入MysqLdb 在第24行的“ /usr/local/lib/python3.8/site-packages/MysqLdb/init.py”文件中 version_info,_MysqL.version_info,_MysqL文件

NameError:名称'_MysqL'未定义

我正在使用macOS catalina,Visual Studio Code中的python 3.8.5。 我已经安装了MysqL法兰,MysqL客户端,MysqL连接器。

解决方法

您似乎早些时候正在初始化应用程序,您的代码应该像这样

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

app = Flask(__name__)

app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSOWRD'] = 'password'
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_DB'] = 'try_flask'

app.config['MYSQL_CURSORCLASS'] = 'DictCursor'

mysql = MySQL(app)

@app.route('/employee',methods=['GET','POST'])
def employee():
    if request.method == 'GET':
        cur = mysql.connection.cursor()
        cur.execute('''SELECT * FROM employee''')
        results = cur.fetchall()
    return jsonify(results)
## i saw everywhere app started at then end of app.py
if __name__ == '__main__':
    app.run(debug=True)