Flask mySQLDB执行成功或失败

时间:2016-12-22 09:18:42

标签: python flask mysql-python execute

我是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'

2 个答案:

答案 0 :(得分:1)

在您的情况下,

c.execute(qry)将不会返回任何内容。因此,您不能将其用于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'

答案 1 :(得分:0)

您已经有了检测已发布代码中失败的方法。如果查询出现问题,Python将引发异常,您可以捕获该异常。虽然值得注意的是你永远不应该看到一个裸露的异常,你肯定永远不会隐藏那个异常;捕获相关的MySQLdb异常,例如MySQLdb.Error