# -*- coding:utf-8 -*- import hashlib,sys from conf.config import * from core.Manage import Manage def login(): ''' 登陆函数:先到config文件中读取userinfo的文件路径 读取userinfo文件中的信息,对用户名和密码进行查验 登陆成功之后查看这个人的身份,来确定进入哪一个是试图 :return: ''' usr = input("username: ") pwd = input("password: ") with open(userinfo) as f: for line in f: user, passwd, role = line.split("|") # md5 = hashlib.md5(bytes('salt',encoding="utf-8")) md5 = hashlib.md5() # md5.update(pwd.encode('utf-8')) md5.update(bytes(pwd, encoding="utf-8")) md5_pwd = md5.hexdigest() if usr == user and md5_pwd == passwd: print('\033[0;32m登陆成功\033[0m') return {"username":usr,'role':role} else: print('\033[0;31m登陆失败\033[0m') pass def main(): print('\033[0;36m欢迎登陆管理系统\033[0m') ret = login() #{"username":usr,'role':role} if ret: role_class =getattr(sys.modules[__name__],ret['role']) #根据userinfo文件当中的最后一项内容反射对象角色类 obj = role_class(ret["username"]) for i,j in enumerate(role_class.menu,1): print(i,j[0]) try: ret = int(input("请输入操作序号:")) getattr(obj,role_class.menu[ret-1][1])() except: print("对不起,您输入的内容有误!") ''' 打印欢迎信息 调用login:得到返回值、用户的姓名和身份 打印用户身份对应的功能菜单 如果用户想要调用任何方法应该通过角色的对象调用/跳转到对应对象的方法里 :return: '''