cmd1 | cmd2 | cmd3 | cmd4
执行程序后显示错误:
cur = mysql.connection.cursor()
AttributeError:'NoneType'对象没有属性'cursor'。
根据文件记录,它应该有效。我使用的是Ubuntu 16.04,我安装了MySQL,它运行正常。谁能解释为什么它不起作用?
答案 0 :(得分:0)
我使用了connect()
方法而不是get_db(),它可以与Python 3.5.5
一起使用。使用get_db
from flask import Flask
from flaskext.mysql import MySQL
app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'test_db'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql = MySQL()
mysql.init_app(app)
# cursor = mysql.get_db().cursor()
cursor = mysql.connect().cursor()
print(cursor)
答案 1 :(得分:0)
问题出在:
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
查看 flaskext.mysql 源,该功能尚未实现。
由于 flaskext.mysql 使用的是 pymysql ,因此您可以使用 pymysql.cursors 的 DictCursor >
示例:
from flaskext.mysql import MySQL
from flask import Flask
from pymysql import cursors
app=Flask(__name__)
mysql = MySQL(cursorclass=cursors.DictCursor)
mysql.init_app(app)
cursor = mysql.connect().cursor()
答案 2 :(得分:0)
答案 3 :(得分:0)
您正在基于flask_mysqldb构造游标,并且直到点击第一个路由时,Flask应用程序才会自行构建,这意味着Flask应用程序将在Flask函数内部构造,这时您的MySQL连接也可以根据您的app.config参数构造,然后可以基于MySQL连接构造光标: 烧瓶构造> MySQL连接构造>游标构造。
因此,您必须在Flask Function中使用游标构造函数: 代替:
readFileContent
输入:
byte[]
答案 4 :(得分:-1)
也许您需要为MySQL上下文初始化应用程序。
from flask import Flask
from flask_mysqldb import MySQL
app = Flask(__name__)
mysql = MySQL()
mysql.config['MYSQL_HOST'] = 'localhost'
mysql.config['MYSQL_USER'] = 'root'
mysql.config['MYSQL_PASSWORD'] = 'password'
mysql.config['MYSQL_DB'] = 'todoapp'
mysql.config['MYSQL_CURSORCLASS'] = 'DictCursor'
mysql.init_app(app)
cur = mysql.connection.cursor()
if __name__ == '__main__':
app.run()