面向對象的思想完成從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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章