【问题标题】:Flask flaskext.mysql no attribute connectionFlask flaskext.mysql 无属性连接
【发布时间】:2018-01-13 06:26:32
【问题描述】:

我正在尝试建立与 sql 数据库的连接,但我最终得到了

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/

【问题讨论】:

    标签: python mysql flask


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 2021-06-13
      相关资源
      最近更新 更多