无法从烧瓶应用程序插入到 MySQL 数据库?



我一直在尝试将flask网页中的用户名和密码插入到mysql数据库中。这是我插入mysql数据库的代码。

name = request.form['name']
username = request.form['username'] 
cursor = db.connection.cursor(MySQLdb.cursors.DictCursor) 
cursor.execute( "SELECT * FROM accounts WHERE username = %s", [username])
account = cursor.fetchone()
if account:
flash("Account already exists!", "danger")
else:     
password = request.form['password']
pw_hash = bcrypt.generate_password_hash(password)
sql = ("INSERT INTO users (username, name, password) VALUES( %s, %s, 
%s)")
data = (username, name, pw_hash)
cursor.execute(sql, data)
cursor.commit()

我已经检查了数据库连接,连接正常。我还检查了数据库的用户是否具有正确的权限。我使用MySQLdb.cursors作为数据库api来与mysql和flask_mysqldb交互。运行应用程序时,调试器不会引发任何错误。我的应用程序可以从数据库中读取以进行登录,但不能插入数据库。

我强烈建议您对烧瓶使用ORM&lt->数据库交互。它更加安全高效。你应该试试SQLAlchemy。需要一段时间才能适应,但这将证明一切努力都是合理的。在代码中使用原始SQL也是一种薄弱的做法。但是,如果我们认为这些代码是理所当然的,那么在执行INSERT之后,你能读取MySQL数据库的响应吗?我看到你存储了散列,但数据库列名是"password"。可以吗?

最新更新