2016-08-01 43 views
1

我正在嘗試使用Flask-MySQLdb。每當我去一個頁面,我得到錯誤_mysql_exceptions.ProgrammingError: closing a closed connection。爲什麼這不起作用?Flask-MySQLdb引發_mysql_exceptions.ProgrammingError:關閉一個關閉的連接

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() 

回答

1

您已經在相同的應用程序上初始化擴展兩次。每次初始化時,它都會註冊一個關閉連接的函數。所以第二個函數關閉了一個已經被第一個註冊函數關閉的連接。從MySQL(最好)刪除application或刪除明確呼叫mysql.init_app

mysql = MySQL() 
mysql.init_app(application)