[英]How do I search a SQL List inside of python to check if the username matches a user input?
所以我正在制作一個登錄頁面,我需要將 SQL 列表的用戶名與用戶輸入進行比較。 我還將使用密碼的答案。 這是我嘗試過的,它返回 false。
list_of_users = [('joe@gmail.com', 'qwerty'), ('jeremy', '123')]
for i in list_of_users:
if i == 'joe@gmail.com':
print("True")
else:
print("False")
當您在 SQL 數據庫上執行 cursor.fetchall() 時,list_of_users 用於模擬 SQL 給出的結果。 任何輸入都會被應用!
因為列表的元素是兩個元素的元組。 所以每個元素依次有兩個。 參見Data Structures-Tuples and Sequences官方文檔中的定義。
如果你想修復你的代碼,你只需在 for 循環中添加第二個元素:
list_of_users = [('joe@gmail.com', 'qwerty'), ('jeremy', '123')]
for email, pwd in list_of_users:
if email == 'joe@gmail.com':
print("True")
else:
print("False")
但是這種方法對於您的用例有一個根本性的缺陷。 你想打印 N 次 'false'? 只需迭代直到找到郵件並停止。
這是一個示例玩具代碼:
list_of_users = [('joe@gmail.com', 'qwerty'), ('jeremy', '123')]
def login(email: str, pwd: str, list_of_users: [()]) -> bool:
for db_email, db_pwd in list_of_users:
if (email == db_email) and (pwd == db_pwd):
return True
return False
print(login('jeremy', '123', list_of_users)) # True
print(login('jeremy', '456', list_of_users)) # False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.