如何做到检测用户名已存在的话就返回用户管理界面

来源:1-9 实战:完善新闻管理系统

江民川

2020-06-05 11:03:29

http://img.mukewang.com/climg/5ed9b50409593d8407560414.jpg

老师您好,我把在创建用户名后加了一段代码用于检测用户名是否已经存在,在dao和service里相应的方法都写好了,没有语句错误,但逻辑还是行不通,如上图,break只会终止当前对range(len(all_username))的for遍历,在提示完了用户名已存在后,仍会继续往下执行输入密码等代码。

http://img.mukewang.com/climg/5ed9b5e009f5fd8503470183.jpg

有办法让它提示完已存在后返回用户管理界面吗?

写回答

1回答

时间,

2020-06-05

同学,你好。同学可以根据下边提供代码实现该功能:

在外层添加一个死循环,当输入的用户名已经存在时,继续执行下一次循环重新输入用户名;当输入的用户名不存时,执行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

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 2669 问题

查看课程