我想使用 Flask 編寫登錄頁面,但是我從數據庫中獲取的用戶值始終是 NoneType。即使在登錄表單中輸入的用戶名與數據庫中的用戶名相同。我想我的 SQL 查詢可能有錯誤,但我不知道它在哪里。我感謝您的幫助!這是登錄函數,該函數應返回在數據庫中找到的行數。@app.route("/login", methods=["GET", "POST"])def login(): if request.method == "POST": #get form fields username = request.form["username"] password_candidate = request.form["password"] result = sqlhandler.mycursor.execute("SELECT * FROM users WHERE username = %s", [username]) print(result) #result is a NoneType這是 sqlhandler 的類:class mySQLHandler(): def __init__(self): self.db = mysql.connector.connect( host="localhost", user="root", passwd="notrealpassword ;)", db="testdb" ) self.mycursor = self.db.cursor()我真的很感激,如果有人能告訴我,為什么執行語句返回一個 NoneType。我已經檢查了 mycursor.execute() 中的代碼是否在 MySQL 工作臺中工作,并且確實如此。
1 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
查詢執行和獲取分為兩個獨立的步驟。執行查詢后從游標中獲取數據:
sqlhandler.mycursor.execute("""
SELECT *
FROM users
WHERE username = %s
""", [username])
data = sqlhandler.mycursor.fetchone()
print(data)
參考:
添加回答
舉報
0/150
提交
取消