话不多说直接上代码。
博主思路
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()