Flask mySQLDB 执行成功还是失败

Flask mySQLDB execute success or failure

我是 Python-Flask 的新手,正在尝试使用 MySQLDB 连接到数据库。但是,我无法确定如何检查游标执行的查询是成功还是失败。在下面的代码中,有人可以建议我如何处理 if 语句中的条件吗? c 是数据库的游标,它连接成功,所以我从下面的代码中排除了它。

qry = "SELECT count(*) FROM users where username = (%s)" % (username)
try:
    x = c.execute(qry) #Is this correct? Doe execute command return a value?
    if <<*Check if the query executed successfully*>>:
        return 'Success'
    else:
        return 'Failure'
except Exception as e:
    return 'Failure'

您已经有办法检测您发布的代码中的错误。如果查询出现问题,Python 将引发异常,您可以捕获该异常。尽管值得注意的是,您永远不应该捕捉到一个简单的异常,而且您当然也不应该隐藏那个异常是什么;捕获相关的 MySQLdb 异常,例如 MySQLdb.Error.

c.execute(qry) 在你的情况下不会 return 任何东西。所以,你不能将它用于 if 语句。

但是,您可以使用 fetchall()fetchone() 来检查您的查询是否有一些结果。它看起来像这样:

qry = "SELECT count(*) FROM users where username = (%s)" % (username)
try:
    c.execute(qry) #Is this correct? Doe execute command return a value?
    user = c.fetchone()
    if user:
        return 'Success'
    else:
        return 'Failure'
except Exception as e:
    return 'Failure'