Anmeldeschnittstelle schreiben
1. Benutzernamen und Passwort eingeben
2. Begrüßungsnachricht nach erfolgreicher Authentifizierung anzeigen
3. Sperren nach dreimaliger Fehleingabe
Idee: Die Anforderungen sind: Beim Schreiben einer Anmeldeschnittstelle muss ein Modul zum Speichern von Benutzerinformationen vorhanden sein. Nach drei Malen muss ein Modul zum Speichern gesperrter Benutzerinformationen vorhanden sein. Wir wissen, dass es zwei Möglichkeiten gibt, Benutzerinformationen zu speichern Datenbankspeicherung und die andere Dateispeicherung. Jetzt haben wir nur das Speichern von Dateien gelernt. Es gibt also zwei Dateien, eine ist die Benutzerinformationsdatei und die andere ist die gesperrte Benutzerinformationsdatei.
Um Informationen aus einer Datei zu lesen, Informationen hinzuzufügen und Informationen zu ändern.
readme:
(1) Benutzer gibt Benutzernamen ein;
(2) Benutzer Gehen Sie zur gesperrten Datei, um zu überprüfen, ob der Benutzer gesperrt ist. Bitten Sie den Benutzer, sich an den Administrator zu wenden, um das Problem zu lösen. (3) Wenn die Datei nicht gesperrt ist, Gehen Sie zur Benutzerdatei, um zu überprüfen, ob der Benutzer vorhanden ist, und bitten Sie den Benutzer, das Passwort einzugeben. Nach erfolgreicher Eingabe wird der Benutzer gesperrt > (4) Wenn der Benutzer nicht in der Benutzerdatei enthalten ist, wird eine Meldung angezeigt, dass der Benutzer nicht registriert ist und sich registrieren muss. Fügen Sie den Benutzer nach der Registrierung zur Benutzerliste hinzu Zeigen Sie die Willkommensnachricht an, verhindern Sie, dass der Benutzer etwas eingibt, und verknüpfen Sie automatisch mit dem Anmeldestatus.
Das Flussdiagramm lautet wie folgt:
Der obige Code implementiert die Überprüfungs- und Sperrfunktionen sowie die Registrierungsfunktion neuer Benutzer, aber Es liegt ein Fehler vor. Das heißt, wenn der Benutzer gesperrt ist, wird er nicht aus der aktuellen Datei gelöscht, sondern der Datei hinzugefügt, die die Benutzerinformationen sperrt. Das Hinzufügen von Informationen zur Datei ist sehr einfach, aber das Löschen einer Information aus Die Datei ist nicht ganz einfach. Sie kann nicht beliebig mit einer Liste bedient werden. Sie können es nur zuerst konvertieren, und beim Bearbeiten von Dateien in der Liste sind Zeilenumbrüche und andere Dinge sehr ekelhaft. Der obige Code wird wie folgt konvertiert, aber er muss perfekt ausgeführt werden. Als Nächstes werde ich auf den von anderen geschriebenen Code verweisen und lernen, wie andere unnötige Informationen in der Datei löschen Code oben.
active = None #程序执行的标识符 def verification(username):"""验证用户是否锁定"""locked_users = [] with open("locked_file") as locked_f:for line in locked_f: locked_user,locked_pwd = line.split(":") locked_users.append(locked_user) print(locked_users)if username in locked_users: print("对不起,你的用户名已经被锁定,请联系管理员!")else: active = Truereturn active def is_registered(username):"""验证用户是否注册,注册就让用户登录,未注册让用户选择重新输入或者注册"""users = {} with open("active_file","r+") as f:for active_line in f: user,pwd = active_line.split(":") users[user] = pwdif username in users.keys(): test_num = 0while test_num < 3: user_pwd = input("请输入您的密码:")if user_pwd == users[username]: print("welcome back,have a good time!")return Falseelse: test_num += 1else: #用户输入三次以上锁定用户,使用的是while...else...方法 print("对不起,你输入的次数过多,你的用户已经被锁定,请联系管理员!") mes = "\n" + username + ":" + users[username] with open("locked_file","a") as f1: f1.write(mes)return Falseelse: print("您输入的用户名不存在,请按照下面的提示选择!") print("注册:请输入1\n登录:请输入2") num = input("请输入你的选择:")if num == "1": register_name = input("请输入你要注册的用户名:")while True: register_pwd = input("请输入你的密码:") register_pwd2 = input("请再次输入你的密码:")if register_pwd == register_pwd2:breakelse: print("您输入的密码不对,请重新输入") message = "\n" + register_name + ":" + register_pwd print("Thank for your registing,have a good time!") with open("active_file","a") as f_obj: f_obj.write(message)return False elif num == "2": user_name = input("请重新输入你的用户名:") verification(user_name)if __name__ == "__main__": username = input("请输入你的用户名:") active = verification(username)while active: active = is_registered(username)
Das obige ist der detaillierte Inhalt vonWie schreibe ich eine Login-Schnittstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!