py mysql结合面向对象,实现类似超市导购机器的功能【8.个人中心】
py mysql结合面向对象,实现类似超市导购机器的功能(自我总结)
步骤8:
个人中心,当前用户可对个人信息进行查看及修改
修改时,需要对所修改的内容进行判断,判断新用户名及手机号是否存在,修旧信息是否相同
修改成功,customers表中数据同步更新
实现代码:
def run(self): while True: print('-----个人中心-----') print('1.查看个人信息') print('2.修改姓名') print('3.修改密码') print('4.修改地址') print('5.修改手机号码') print('6.返回上一级') num = input('请输入操作类型:') if num == '1': #查看个人信息 print('个人信息:') l_info = ['姓名:', '地址:', '手机号码:', '密码:'] sql = """select name,password from customers where is_login=1""" self.cs1.execute(sql) for temp in self.cs1.fetchall(): sql='select name,address,tel,password from customers where name=%s' self.cs1.execute(sql,temp[0]) c_info=self.cs1.fetchall() for temp in c_info: for i in range(4): print(l_info[i],temp[i]) elif num == '2': # 修改姓名 new_name = input('新用户名称:') sql = """select * from customers where name = %s""" count = self.cs1.execute(sql, new_name) if count != 0: print('用户名已存在,请重新输入') else: sql = """select name,password from customers where is_login=1""" self.cs1.execute(sql) for temp in self.cs1.fetchall(): sql = 'update customers set name=%s where is_login=1 and name=%s' self.cs1.execute(sql, [new_name, temp[0]]) self.conn.commit() print('用户名修改成功!!!') elif num == '3': # 修改密码 new_psw = input('新密码:') sql = """select name,password from customers where is_login=1""" self.cs1.execute(sql) for temp in self.cs1.fetchall(): if temp[1]==new_psw: print('新密码和旧密码相同,请重新输入') else: pra=[new_psw,temp[0]] sql = 'update customers set password=%s where is_login=1 and name=%s' self.cs1.execute(sql, pra) self.conn.commit() print('密码修改成功!!!') elif num == '4': #修改地址 new_addr = input('新地址:') sql = """select name,address from customers where is_login=1""" self.cs1.execute(sql) for temp in self.cs1.fetchall(): if temp[1] == new_addr and len(temp[1])!=0: print('新地址和旧地址相同,请重新输入') else: pra = [new_addr, temp[0]] sql = 'update customers set address=%s where is_login=1 and name=%s' self.cs1.execute(sql, pra) self.conn.commit() print('地址修改成功!!!') elif num == '5': # 修改手机号码 new_tel = input('新手机号码:') sql = """select name,tel from customers where is_login=1""" self.cs1.execute(sql) for temp in self.cs1.fetchall(): if temp[1] == new_tel and len(temp[1]) != 0: print('新地址和旧地址相同,请重新输入') else: pra = [new_tel, temp[0]] sql = 'update customers set tel=%s where is_login=1 and name=%s' self.cs1.execute(sql, pra) self.conn.commit() print('手机号码修改成功!!!') elif num == '6': break else: print('操作模块选择错误,请重新输入')
----------END

浙公网安备 33010602011771号