为什么条件语句未执行?

时间:2019-09-15 18:42:21

标签: python mysql flask

我想从我的MySQL数据库中读取数据。

if myresult:语句未返回任何内容。似乎该语句不起作用或未进行密码检查。

@app.route('/stdLog',methods=['POST','GET'])
def stdLog():
    if request.method=='POST':
        mycursor=mydb.cursor()
        pwHash=bcrypt.generate_password_hash(request.form['password'])
        sql="select * from student where name=%s and password=%s"
        val=(request.form['name'],pwHash)
        mycursor.execute(sql,val)
        myresult=mycursor.fetchall()
        if myresult:
           print("logged in")
    return 'ok'

1 个答案:

答案 0 :(得分:0)

print语句不会反映到服务中。打印语句仅适用于控制台或REPL。在您的程序中,我假设您要在网页上返回logged in,为此,您需要更改打印语句以返回,如下所示:

@app.route('/stdLog',methods=['POST','GET'])
def stdLog():
    if request.method=='POST':
        mycursor=mydb.cursor()
        pwHash=bcrypt.generate_password_hash(request.form['password'])
        sql="select * from student where name=%s and password=%s"
        val=(request.form['name'],pwHash)
        mycursor.execute(sql,val)
        myresult=mycursor.fetchall()
        if  myresult:
            return ("logged in")
    return 'ok'

现在,如果您的if条件失败,将导致ok,这是一件坏事。您可以添加else块以使程序更好地工作。