老师,我的代码不能实现更新用户的功能。代码反复看了好几遍没看出问题在哪里,请帮忙看看吧,谢谢,谢谢

老师,我的代码不能实现更新用户的功能。代码反复看了好几遍没看出问题在哪里,请帮忙看看吧,谢谢,谢谢


app.py

#更新用户
elif opt == "2":
   page = 1
   while True:
       os.system("cls")
       count_page = __user_service.count_user_page()
       result = __user_service.search_list(page)
       for index in range(len(result)):
           one = result[index]
           print(Fore.LIGHTBLUE_EX, "\n\t{}\t{}\t{}".format(index + 1, one[1], one[2]))
       print(Fore.LIGHTBLUE_EX, "\n\t--------------------")
       print(Fore.LIGHTBLUE_EX, "\n\t{}/{}".format(page, count_page))
       print(Fore.LIGHTBLUE_EX, "\n\t--------------------")
       print(Fore.LIGHTRED_EX, "\n\tback.返回上一层")
       print(Fore.LIGHTRED_EX, "\n\tprev.上一页")
       print(Fore.LIGHTRED_EX, "\n\tnext.下一页")
       print(Style.RESET_ALL)
       opt = input("\n\t请输入操作编号:")
       if opt == "back":
           break
       elif opt == "prev" and page > 1:
           page = page - 1
       elif opt == "next" and page < count_page:
           page = page + 1
       elif int(opt) > 0 and int(opt) < 11:
           os.system("cls")
           user_id=result[int(opt)-1][0]
           user_name = input("\n\t新用户名")
           password = getpass("\n\t新密码")
           repassword = getpass("\n\t确认新密码")
           if password != repassword:
               print("\n\t两次输入的密码不一致(3秒后自动返回)")
               time.sleep(3)
               continue
           email = input("新邮箱:")
           result = __role_service.search_list()
           for index in range(len(result)):
               one = result[index]
               print(Fore.LIGHTGREEN_EX, "\n\t{}.{}".format(index + 1, one[1]))
           opt = input("\n\t角色编号:")
           role_id = result[int(opt) - 1][0]
           opt=input("\n\t是否需要保存(Y/N)")
           if opt=="Y" or opt=="y":
               __user_service.update_user(user_name,password,email,role_id,user_id)


user_dao.py

#更新用户
   def update_user(self,user_name,password,role_id,email,id):
       try:
           con = pool.get_connection()
           con.start_transaction()
           cursor = con.cursor()
           sql = "update t_user set user_name=%s,password=hex(aes_decrypt(%s,'HelloWorld')),email=%s,role_id=%s " \
                 "where id=%s"
           cursor.execute(sql,(user_name, password, email, role_id,id))
           con.commit()
       except Exception as e:
           if "con" in dir():
               con.rollback()
           print(e)
       finally:
           if "con" in dir():
               con.close()


user_service.py

#更新用户
   def update_user(self,user_name,password,email,role_id,id):
       self.__user_dao.update_user(user_name,password,email,role_id,id)

正在回答

登陆购买课程后可参与讨论,去登陆

4回答
提问者 慕粉1504263447 2020-06-20 15:23:31
  • 同学,你好。同学在输入y更新mysql数据库时没有报错吗?同学可以看下连接的数据库和查看结果时使用的数据库表是否一致。祝学习愉快~~~~
    2020-06-20 19:02:39
提问者 慕粉1504263447 2020-06-20 15:21:48

按如图步骤操作下来,没有报错,但是数据库数据没有更新http://img1.sycdn.imooc.com//climg/5eedb8a809d8c92d05270578.jpghttp://img1.sycdn.imooc.com//climg/5eedb8ea099c97b804780396.jpg

好帮手慕美 2020-06-20 15:04:21

同学,你好。测试同学的代码是可以修改成功的。同学可以将报错提示提供下或者更新用户哪部分不能实现详细描述下,方便更好的为您解决。

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

  • 提问者 慕粉1504263447 #1
    老师请看我自己回复的内容描述。没有报错,但是数据没有更新。
    2020-06-20 15:22:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师