我正在做一個web服務器+網站與python,我目前正在搞清楚如何檢查您的登錄值是否正確。此前的測試我用下面的代碼:Python33 - SQLite3帳戶與身份驗證
def checkUser(username, password): #<-- input values go in here
site_usernames = ["admin", "username1", "username2"]
site_passwords = ["admin", "password1", "password2"]
site_couples = {"admin":"admin", "username1":"password1", "username2":"password2"}
not_counter = 0
while True:
if username in site_usernames:
if password in site_passwords:
for key in site_couples:
if (username == key) and (password == site_couples[key]):
print("User %s logged in!" % username)
return True
else:
not_counter = not_counter + 1
if not_counter > 10:
print("User failed login with accountname: %s" % username)
return False
break
else:
continue
else:
pass_exists = False
break
else:
user_exists = False
break
據我所看到的,你不能從一個數據庫字典的形式返回兩列。我設法把一列作爲一個列表,我打算使用它。
所以在我的新的代碼,我有以下幾點:
是在數據庫
編碼密碼列表數據庫中的用戶名列表
我想做一個驗證功能,檢查是否:
- 如果用戶名存在於數據庫:
- 如果在數據庫中存在的口令:
- 如果輸入的用戶名:密碼夫婦存在於所有現有用戶名:密碼值的數據庫:
- 返回真,如果所有檢查都成功
問題是我覺得管理這樣的事情非常困難。正如您在示例代碼中看到的,我有兩個列表和一個字典,都是預定義的。我想要即時創建這些東西,唯一需要我幫助的是如何創建用戶名:密碼字典對。我會怎麼做這樣的事情? zip()
產生元組而不是字典。
不使用Flask或Django等現有框架的好理由?重新創建項目的Web框架並不是最佳實踐 - 無論是爲了生產力,還是爲了安全原因,更重要。 – jsbueno
@jsbueno是的。我們想讓自己瞭解它是如何工作的,並獲得經驗。我們無意運行一個真實的網站,我們只是想體驗一下如何製作整個軟件包。 – IPDGino
不錯 - 不僅僅是爲了它 - 我自己主張爲了學習的目的而從頭開始實施。 – jsbueno