Flask-MySQLdb raises _mysql_exceptions.ProgrammingError: closing a closed connection
Flask-MySQLdb raises _mysql_exceptions.ProgrammingError: closing a closed connection
我正在尝试使用 Flask-MySQLdb。每次我转到一个页面时,我都会收到错误 _mysql_exceptions.ProgrammingError: closing a closed connection
。为什么这不起作用?
from flask import Flask, render_template, request, json
from flask_mysqldb import MySQL
application = Flask(__name__)
mysql = MySQL(application)
application.config['MYSQL_USER'] = 'root'
application.config['MYSQL_PASSWORD'] = 'password'
application.config['MYSQL_DB'] = 'db name'
application.config['MYSQL_HOST'] = 'localhost'
mysql.init_app(application)
@application.route('/')
def index():
cur = mysql.connection.cursor()
cur.execute("SHOW TABLES")
rv= cur.fetchall()
return str(rv)
if __name__ == "__main__":
application.run()
您已在同一个应用程序上初始化扩展程序两次。每次初始化时,它都会注册一个关闭连接的函数。所以第二个函数关闭了一个已经被第一个注册函数关闭的连接。从 MySQL
中删除 application
(最好)或删除对 mysql.init_app
.
的显式调用
mysql = MySQL()
mysql.init_app(application)
我正在尝试使用 Flask-MySQLdb。每次我转到一个页面时,我都会收到错误 _mysql_exceptions.ProgrammingError: closing a closed connection
。为什么这不起作用?
from flask import Flask, render_template, request, json
from flask_mysqldb import MySQL
application = Flask(__name__)
mysql = MySQL(application)
application.config['MYSQL_USER'] = 'root'
application.config['MYSQL_PASSWORD'] = 'password'
application.config['MYSQL_DB'] = 'db name'
application.config['MYSQL_HOST'] = 'localhost'
mysql.init_app(application)
@application.route('/')
def index():
cur = mysql.connection.cursor()
cur.execute("SHOW TABLES")
rv= cur.fetchall()
return str(rv)
if __name__ == "__main__":
application.run()
您已在同一个应用程序上初始化扩展程序两次。每次初始化时,它都会注册一个关闭连接的函数。所以第二个函数关闭了一个已经被第一个注册函数关闭的连接。从 MySQL
中删除 application
(最好)或删除对 mysql.init_app
.
mysql = MySQL()
mysql.init_app(application)