gpt4 book ai didi

python - 如何使这个 Flask-mysql 插入提交?

转载 作者:行者123 更新时间:2023-12-01 00:18:02 24 4
gpt4 key购买 nike

我还在用 Flask-mysql。

我正在获取数据库上下文(mysql 变量),并且可以查询数据库/获取结果。只有插入不起作用:它没有提示(抛出异常)。它从插入方法返回 True

这应该在记录提交时插入记录,但出于某种原因,当我使用 MySQL Workbench 观察 MySQL 数据库时,没有任何内容被插入到表中(并且它没有从插入方法):

我将其传递给 insertCmd:

"INSERT into user(username, password) VALUES ('test1','somepassword');"

我检查了数据库中列的长度,并将命令复制到 MySQL Workbench(它成功地将行插入到表中)。

我很迷茫。我见过的例子似乎都遵循这种格式,而且我有一个很好的数据库上下文。你可以在评论中看到我尝试过的其他东西。

def insert(mysql, insertCmd):
try:
#connection = mysql.get_db()
cursor = mysql.connect().cursor()
cursor.execute(insertCmd)
mysql.connect().commit()
#mysql.connect().commit
#connection.commit()
return True
except Exception as e:
print("Problem inserting into db: " + str(e))
return False

最佳答案

您需要保留连接的句柄;你一直在你的循环中覆盖它。

这是一个简化的例子:

con = mysql.connect()
cursor = con.cursor()

def insert(mysql, insertCmd):
try:
cursor.execute(insertCmd)
con.commit()
return True
except Exception as e:
print("Problem inserting into db: " + str(e))
return False

如果 mysql 是你的连接,那么你可以直接提交:

def insert(mysql, insertCmd):
try:
cursor = mysql.cursor()
cursor.execute(insertCmd)
mysql.commit()
return True
except Exception as e:
print("Problem inserting into db: " + str(e))
return False
return False

关于python - 如何使这个 Flask-mysql 插入提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46997265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com