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('操作模块选择错误,请重新输入')

 

posted @ 2020-08-14 15:46  zhou&zhou  阅读(123)  评论(0)    收藏  举报