python pymsql使用面向对象实现对数据库增删改查

话不多说直接上代码。

博主思路

1.创建数据库类(那就肯定会有实例对象)

2.创建实例对象(想实操作共呢个肯定会有执行方法)

3.调用run方法

4.先跳过__init__方法直接pass 创建一个run 方法

5.调用增删改查方法....最后在做代码优化就完成咯

import pymysql


class JDsql(object):
    def __init__(self):
        self.conn_sql = pymysql.connect(host = "local",port=3306,user = "root",password = "123456",database = "jd_db",charset="utf8")
        # 获取游标
        self.get_cur = self.conn_sql.cursor()
    def __del__(self):
        # 关闭游标
        # 关闭数据库使用
        self.get_cur.close()
        self.conn_sql.close()
    
    def execute_sql(self,sql)
        #使用游标执行sql语句
        self.get_cur.execute(sql)
        # 使用游标获取信息
        for i in self.get_cur.fetchall():
            print(i)

    def show_all(self):

        # 显示所有商品
        sql = "select * from goods"
        self.execute_sql(sql)

    def show_cate_name(self):

        # 查询所有种类的商品
        sql = "select name from goods_cates"
        self.execute_sql(sql)

    def show_all_brands(self):
        sql = "select name from goods_brands"
        self.execute_sql(sql)

    # 添加商品
    def add_ctaes(self):
        new_cates = input("请输入你要添加的种类:")
        sql = "insert into goods_cates(name) values('%s')"%new_cates
        # 重新执行游标
        self.get_cur.execute(sql)
        # 向数据库提交数据
        self.conn_sql.commit()
    # 根据商品名称查找商品
    def find_name(self):
        # 防止sql注入
        find_right_name = input("请输入要查询的商品的名称")
        sql = "select * from goods_brands where name=%s"
        self.get_cur.execute(sql,[find_right_name])
        print(self.get_cur.fetchall())

    @staticmethod
    def num_data():
        print("---京东商城---")
        print("1.所有商品")
        print("2.所有商品分类")
        print("3.所有商品品牌分类")
        print("4.添加品牌分类")
        print("5.根据名字查找商品")
        print("0.退出系统")
        return input("请输入对应的功能序号:")

    def run(self):
        while True:
            # 调用静态
            num = self.num_data()
            if num == "1":
                # 查询所有商品
                self.show_all()
            elif num == "2":
                # 查询所有商品分类
                self.show_cate_name()
            elif num == "3":
                # 查询品牌分类
                self.show_all_brands()
            elif num == "4":
                # 添加商品分类
                self.add_ctaes()
            elif num == "5":
                # 根据商品名称查找商品
                self.find_name()
            elif num == "0":
                print("欢迎再次使用")
                break

            else:
                print("输入有误,请重新输入")

def main():

    # 创建一个实例对象
    jd_data = JDsql()
    # 调用一个run方法
    jd_data.run()


if __name__ == '__main__':
    main()

 

你可能感兴趣的:(python)