简单的登陆注册功能
新手第一次发博客,有什么不对请大家多多见谅!!
下面就直接上需求:
实现一个登陆注册功能
提示是否拥有账号 有跳转登陆 没有跳转注册
注册
检查文件中是否有相同的账号名
注册成功后跳转到登陆
登陆
输入用户名和密码
认证成功后显示欢迎登陆
三次失败是锁定账号
需求也比较简单,但实际上做起来还是遇到许多的问题,我这边主要用到的知识点大概就是 对文件的操作 json对象 字典 等
大致的思路 我是分别写了五个函数
fileRead() 文件读取
FileWrite()文件写入
FileModify()文件修改
Register()注册
Login()登陆
来实现整个功能的,话不多说直接上代码了
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: linghanchujian """ 实现一个登陆注册功能 提示是否拥有账号 有跳转登陆 没有跳转注册 注册 检查文件中是否有相同的账号名 注册成功后跳转到登陆 登陆 输入用户名和密码 认证成功后显示欢迎登陆 三次失败是锁定账号 """ import os import json import getpass DATAJSON = '' #临时用来存放数据 """ 文件的读取 """ def FileRead(): LoginAndRegistrationData = open("G:/Data.txt","r") if os.path.getsize("G:/Data.txt")!= 0: global DATAJSON # 全局变量 DATAJSON = json.loads(LoginAndRegistrationData.read()) # DATAJSON = LoginAndRegistrationData.read() # print(DATAJSON) LoginAndRegistrationData.close() pass """ 文件的写入 """ def FileWrite(DATAJSON,userName,passWord): """ 直接打开一个txt文件没有就创建Data文件 """ LoginAndRegistrationData = open("G:/Data.txt", "w") Subscript = 1 if DATAJSON != '': for d in DATAJSON: Subscript += 1 DATAJSON["User"+str(Subscript)] = {"UserName":userName,"Password":passWord,"isLocking":False} else: DATAJSON = {"User1":{"UserName":userName,"Password":passWord,"isLocking":False}} JsonData = json.dumps(DATAJSON, ensure_ascii=False) LoginAndRegistrationData.write(JsonData) LoginAndRegistrationData.close() # print(Subscript) pass """ 文件的修改 """ def FileModify(n): # 对文件进行修改 DATAJSON[str(n)]["isLocking"] = True # 对文件进行储存 LoginAndRegistrationData = open("G:/Data.txt", "w") JsonData = json.dumps(DATAJSON, ensure_ascii=False) LoginAndRegistrationData.write(JsonData) LoginAndRegistrationData.close() pass """ 注册程序 """ def Register(): print("------------欢迎来注册!!---------") RegisterUserName = input("注册账号:") if DATAJSON != '': for d in DATAJSON: if DATAJSON[d]["UserName"]==RegisterUserName: print("该账号已被注册!!!") Register() return ; RegisterPassWord = input("注册密码:") try: FileWrite(DATAJSON,RegisterUserName,RegisterPassWord) finally: print("注册成功!!") Login() pass """ 登陆程序 """ def Login(): print("------------欢迎来到登陆!!-----------") isUserName = True LoginUser = input("账号:") for d in DATAJSON: # print(d) # print(DATAJSON[d]["UserName"]+"and"+LoginUser) if LoginUser == DATAJSON[d]["UserName"]: isUserName = False if DATAJSON[d]["isLocking"]==True: print("该账号已被锁定,请更换账号!!") Login() return else: for i in range(3): if i>0: print("密码错误你还有"+str(3-i)+"次机会") LoginPassword = input("密码:") if DATAJSON[d]["Password"]==LoginPassword: print("登陆成功!!") return else: if i == 2: print("三次机会用完,该账号已被锁定!!") FileModify(d) Login() else: if isUserName: print("没有该账号!!") Login() pass FileRead() print(DATAJSON) YesAndNo = input("是否拥有账号?y/n\n") if YesAndNo == 'y': Login() elif YesAndNo == 'n': Register() else: print("谢谢你的使用!!") exit()