2016-08-01 7 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

拡張機能を同じアプリケーションで2回初期化しました。初期化されるたびに、接続を閉じる関数を登録します。したがって、2番目の関数は、最初に登録された関数によってすでに閉じられた接続を閉じます。 applicationMySQL(好ましくは)から削除するか、またはmysql.init_appへの明示的な呼び出しを削除してください。

mysql = MySQL() 
mysql.init_app(application) 
関連する問題