如何做到检测用户名已存在的话就返回用户管理界面
来源: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