我試圖了解我們可以從資料庫 ''' 中獲得的不同值
tmppass = db.execute("SELECT * from users WHERE username=:username", {"username": session['user_id']}).fetchone()
tmppass_1 = db.execute("SELECT password from users WHERE username=:username", {"username": session['user_id']}).fetchone()
old_password = request.form.get('old_password')
newpass_1 = request.form.get('new_password_1')
newpass_2 = request.form.get('new_password_2')
hashOfNewPass = str(pbkdf2_sha256.hash(newpass_1))
oldPassHash = pbkdf2_sha256.hash(old_password)
print(tmppass['password'])
print(tmppass_1)
'''
我從 tmppass 和 tmppass_1 的資料庫中得到不同的結果
tmppass_1 = ('$pbkdf2-sha256$29000$bs1Z6z0HYOw9R4hR6t37nw$.ZtoRLUsZCYmkbRVNTiZt1uLLQwuJ.iyxrNcHg43SYA',)
tmppass['password'] = $pbkdf2-sha256$29000$bs1Z6z0HYOw9R4hR6t37nw$.ZtoRLUsZCYmkbRVNTiZt1uLLQwuJ.iyxrNcHg43SYA
[tmppass_1 只從資料庫獲取哈希值列印帶括號的字串][1]
uj5u.com熱心網友回復:
一般來說,(x,)在 Python 中是一個具有單個元素的元組。
由于您使用SELECT *的是 ,因此會回傳一個元組(即使表中只有一列)。這是一種設計選擇,目的是實作所有SELECT *查詢之間的一致性,而不考慮實際的列數(特別是,如果稍后將列添加到SELECT *查詢中使用的表,則確保現有代碼不會中斷)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/339323.html
標籤:Python 数据库 PostgreSQL 验证 烧瓶-sqlalchemy
