def pwd_modified(): f = open(settings.STUDENT_LIST, mode='rb') f1 = open(settings.STUDENT_LIST1, mode='ab') while True: pwd = input('请输入旧密码(N/n):').strip() if pwd.upper() == 'N': f.close() f1.close() os.remove(settings.STUDENT_LIST) os.rename(settings.STUDENT_LIST1, settings.STUDENT_LIST) return pwd = get_md5.get_md5(pwd) if pwd == settings.PWD: break else: print('密码输入有误,请重新输入') continue while True: try: v = pickle.load(f) if v.name == settings.USER: while True: settings.USER = v.name pwd = input('请输入新密码(N/n):').strip() if pwd.upper() == 'N': f.close() f1.close() os.remove(settings.STUDENT_LIST) os.rename(settings.STUDENT_LIST1, settings.STUDENT_LIST) return pwd2 = input('请确认新密码:').strip() if pwd != pwd2: continue pwd = get_md5.get_md5(pwd) val = student.Student(v.name, pwd) pickle.dump(val, f1) print('密码修改成功') break else: pickle.dump(v, f1) except: f.close() f1.close() os.remove(settings.STUDENT_LIST) os.rename(settings.STUDENT_LIST1, settings.STUDENT_LIST) break
def login(): flag = False if not os.path.exists(settings.STUDENT_LIST) or os.path.getsize( settings.STUDENT_LIST) == 0: return flag f = open(settings.STUDENT_LIST, mode='rb') name = input('请输入账号:').strip() if name.upper() == 'N': return pwd = input('请输入密码:').strip() pwd = get_md5.get_md5(pwd) while True: try: v = pickle.load(f) if v.name == name and v.pwd == pwd: print('登陆成功') settings.USER = name settings.PWD = pwd flag = True return flag except: f.close() break if not flag: print('用户名或密码错误,请重新登陆') login()
def creat_student(): while True: name = input('please input the user name(N/n): ') if name.upper() == 'N': break pwd = get_md5.get_md5('123') val = student.Student(name, pwd) """ 先判断用户是否存在,存在则不再创建 """ if not os.path.exists(settings.STUDENT_LIST): with open(settings.STUDENT_LIST, mode='ab') as f: pickle.dump(val, f) continue f = open(settings.STUDENT_LIST, mode='rb') flag = False while True: try: v = pickle.load(f) if v.name == name: flag = True print('学生信息已存在,请重新输入') break except: break f.close() if not flag: with open(settings.STUDENT_LIST, mode='ab') as f: pickle.dump(val, f)
def login(self): while True: dic = self.obj.my_recv() if dic['user_name'] == 'Q': return flag = False with open(settings.USER_INFO, 'rb') as f: try: while True: user_dic = pickle.load(f) if dic['user_name'] == user_dic['user_name'] and get_md5.get_md5(dic) == user_dic['user_pwd']: flag = True settings.USER_DIR = os.path.join(settings.SER_DIR, user_dic['user_name']) if user_dic['ident'] == 'vip': VIP_L.add(user_dic['user_name']) break except:pass dic = {'operator': flag} self.obj.my_send(dic) if flag: return flag
def register(self): dic = self.obj.my_recv() flag = True with open(settings.USER_INFO, 'rb') as f: try: while True: user_dic = pickle.load(f) if dic['user_name'] == user_dic['user_name']: flag = False except:pass if not flag: """用户名已存在""" status_dic = {'operator': flag} self.obj.my_send(status_dic) else: """把用户名、密码和身份信息写入user_info文件""" with open(settings.USER_INFO, 'ab') as f: pickle.dump({'user_name': dic['user_name'], 'user_pwd': get_md5.get_md5(dic), 'ident': 'ordinary'}, f) settings.USER_DIR = os.path.join(settings.SER_DIR, dic['user_name']) if not os.path.exists(settings.USER_DIR): os.makedirs(settings.USER_DIR) status_dic = {'operator': flag} self.obj.my_send(status_dic)