面向对象的思想完成从mysql数据库查询数据

from pymysql import connect


class JD():
    # 初始化方法。一旦创建实例对象初始化方法就会执行
    def __init__(self):
        # 只要创建实例对象就会调用该方法。   长连接
        # 连接mysql数据库
        self.conn = connect(host='localhost', port=3306, database='test', user='root', password='123456', charset='utf8')
        # 创建cursor游标对象
        self.cs = self.conn.cursor()

    def __del__(self):
        '''手动调用del或者由Python自动回收都会触发__del__方法执行。'''
        # 关闭对象
        self.cs.close()
        self.conn.close()

    def excute_sql(self,sql):
        '''
        执行查询sql语句方法
        :param sql: 形参,等待用户传sql语句过来
        :return:
        '''
        self.cs.execute(sql)  # 执行sql语句
        for temp in self.cs.fetchall():
            print(temp)

    def show_all_items(self):
        ''' 显示所有商品信息的方法'''
        sql = 'select * from goods;'
        self.excute_sql(sql)

    def show_cates(self):
        '''显示所有商品种类方法'''
        sql = 'select cate_name from goods;'
        self.excute_sql(sql)

    def show_brands(self):
        '''显示所有商品品牌方法'''
        sql = 'select brand_name from goods group by brand_name;'
        self.excute_sql(sql)

    @staticmethod
    def print_menu():
        msg = '''
                --------京东商城------------
                1.查询所有商品信息
                2.查询所有商品种类
                3.查询所有商品的品牌
                0.退出
             '''
        print(msg)
        # 将用户输入返回给调用者self.print_menu() 即返回给choice
        return input('请选择功能: ')

    def run(self):
        while True:
            choice = self.print_menu()
            if choice == '1':
                # 查询所有商品信息
                self.show_all_items()
            elif choice == '2':
                # 查询所有商品种类
                self.show_cates()
            elif choice == '3':
                # 查询所有商品的品牌
                self.show_brands()
            elif choice == '0':
                break
            else:
                print('输入错误,请重新输入')


def main():
    # 创建一个JD实例对象
    jd = JD()
    # 调用这个实例对象的run()方法,让其运行
    jd.run()


if __name__ == '__main__':
    main()

你可能感兴趣的:(学习笔记)