面向對象的思想操作mysql數據庫增刪改查)

from pymysql import connect


class JD():
    def __init__(self):
        # 定義一個conn屬性用來存儲連接數據庫後的connect對象
        self.conn = connect(host='localhost', port=3306, database='test', user='root', password='123456', charset='utf8')
        # 定義一個cs屬性用來存儲創建cursor遊標對象
        self.cs = self.conn.cursor()

    def __del__(self):
        '''手動刪除對象後會執行該方法或者python系統會自動執行該方法'''
        # 關閉對象
        self.cs.close()
        self.conn.close()

    def implement_sql(self,sql):
        '''執行查詢數據庫的sql語句'''
        # 執行sql語句
        self.cs.execute(sql)
        # 將查詢到的數據全部顯示出來
        ret = self.cs.fetchall()
        for temp in ret:
            print(temp)

    def show_all_items(self):
        '''顯示所有商品信息'''
        # 準備查詢所有查詢所有商品信息sql語句
        sql = 'select * from goods;'
        # 調用執行sql語句方法,將sql傳過去
        self.implement_sql(sql)

    def show_cates(self):
        '''顯示所有商品種類'''
        # 準備sql語句
        sql = 'select cate_name from goods group by cate_name;'
        # 調用執行sql語句方法,將sql傳過去
        self.implement_sql(sql)

    def show_brands(self):
        '''顯示所有品牌種類'''
        # 準備顯示所有品牌種類的sql語句
        sql = 'select brand_name from goods group by brand_name;'
        # 調用implement_sql()方法
        self.implement_sql(sql)

    def add_cates_info(self):
        '''增加商品種類信息'''
        add_cate_name = input('請輸入你要添加的商品種類名稱: ')
        # 準備增加商品種類的sql語句
        sql = '''insert into goods (name,cate_name, brand_name) values ('zcx 超級無敵遊戲電腦','%s','alien');''' % add_cate_name
        # 執行sql語句   不能調用  implement_sql()方法。因爲我們現在是往數據庫增加數據,不是查看數據
        self.cs.execute(sql)
        # 增、刪、該mysql數據庫中的數據,都必須通過connect對象提交
        self.conn.commit()
        print('添加成功!!!')

    @staticmethod
    def show_menu():
        '''顯示功能菜單'''
        msg = '''
            --------------京東商城----------------
            1.查詢所有商品信息
            2.查詢所有商品種類
            3.查詢所有商品的品牌
            4.增加商品種類
            0.退出
            
           ------------------END--------------------  
         '''
        print(msg)
        choice = input('請輸入你選擇的功能: ')
        # 將用戶輸入的選擇返回給函數調用者 即返回給self.show_menu()
        return choice

    def run(self):
        while True:
            # 調用顯示菜單方法 show_menu()
            choice = self.show_menu()
            if choice == '1':
                # 調用顯示所有商品信息方法
                self.show_all_items()
            elif choice == '2':
                self.show_cates()
            elif choice == '3':
                self.show_brands()
            elif choice == '4':
                # 增加商品信息
                self.add_cates_info()
            elif choice == '0':
                break
            else:
                print('輸入錯誤,請重新輸入..')


def main():
    # 創建一個實例對象
    jd = JD()
    # 調用run()方法,讓其運行起來
    jd.run()


if __name__ == '__main__':
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章