簡體   English   中英

如何在 python 中搜索 SQL 列表以檢查用戶名是否與用戶輸入匹配?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM