2017-08-05 35 views
0

我试图建立到SQL数据库的连接没有属性的连接,但我最终瓶flaskext.mysql

AttributeError: 'MySQL' object has no attribute 'connection' 

我已经通过文件阅读,它看起来像这样的正确的方法来创建一个光标:

from flask import Flask 
from flaskext.mysql import MySQL 

app = Flask(__name__) 
app.config['MYSQL_HOST'] = 'sql3.freemysqlhosting.net' 
app.config['MYSQL_USER'] = 'sql1234567' 
app.config['MYSQL_PASSWORD'] = 'abcdefg' 
app.config['MYSQL_DB'] = 'sql1234567' 
app.config['MYSQL_PORT'] = '3306' 
mysql = MySQL(app) 

@app.route('/') 
def index(): 
    cur = mysql.connection.cursor() 
    cur.execute('''SELECT * FROM users''') 
    rv = cur.fetchall() 
    return str(rv) 

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

编辑:使用https://www.youtube.com/watch?v=nWO_VpI5wn8作为教程和文档是http://flask-mysqldb.readthedocs.io/en/latest/

回答

1

您在这里输入不正确的模块。

解决方案是

代替进口

from flaskext.mysql import MySQL 

进口这是不同的模块(按照this

from flask_mysqldb import MySQL 

这看起来像一些IDE自动进口问题。由于这两个模块是不同的,你可以安装这两个包如下:

pip install flask-mysqldbpip install flask-mysql

编辑

如果你想使用以前的模块,你必须遵循this并且光标可以如下使用:

from flaskext.mysql import MySQL 
mysql = MySQL() 
mysql.init_app(app) 
cursor = mysql.get_db().cursor()