如何做到检测用户名已存在的话就返回用户管理界面
来源:1-9 实战:完善新闻管理系统
江民川
2020-06-05 11:03:29
老师您好,我把在创建用户名后加了一段代码用于检测用户名是否已经存在,在dao和service里相应的方法都写好了,没有语句错误,但逻辑还是行不通,如上图,break只会终止当前对range(len(all_username))的for遍历,在提示完了用户名已存在后,仍会继续往下执行输入密码等代码。
有办法让它提示完已存在后返回用户管理界面吗?
1回答
同学,你好。同学可以根据下边提供代码实现该功能:
在外层添加一个死循环,当输入的用户名已经存在时,继续执行下一次循环重新输入用户名;当输入的用户名不存时,执行else中的代码继续输入密码等操作,执行完相应操作后执行break结束while循环
all_username = __user_service.search_all_username() while True: flag = True username = input("\n\t用户名:") for i in all_username: if username in i: flag = False break if flag == False: continue else: password = getpass("\n\t密码:") repassword = getpass("\n\t重复密码:") if password != repassword: print("\n\t两次密码不一致(3秒自动返回)") time.sleep(3) continue email = input("\n\t邮箱:") result = __role_service.search_list() for index in range(len(result)): one = result[index] print(Fore.LIGHTBLUE_EX, "\n\t%d.%s" % (index + 1, one[1])) print(Style.RESET_ALL) opt = input("\n\t角色编号:") role_id = result[int(opt) - 1][0] __user_service.insert(username, password, email, role_id) print("\n\t保存成功(3秒自动返回)") time.sleep(3) break
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题
回答 1