我想从我的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'
答案 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
块以使程序更好地工作。