import pymysql
conn=pymysql.connect(host='localhost',user='root',passwd='root',db='stu',charset='utf8')
#创建游标
cursor = conn.cursor()
cursor.execute("drop table IF EXISTS tsglxt")#如果表存在则删除
systemsql = '''create table tsglxt(
ISBN int primary key,
name varchar(50),
press char(20),
price int,
author varchar(50))DEFAULT CHARSET=utf8;
'''
cursor.execute(systemsql) #创建表
len=0
list=[]
# 增加
def add():
global list
global len
while True:
try:
ISBN = int(input("请输入要新增的ISBN:"))
a = False
for i in list:
if i == ISBN:
a = True
break
if ISBN!=-1 and a==False:
len=len+1
name = input("请输入书名:")
press = input("请输入出版社:")
while True:
try:
price = int(input("请输入价格:"))
break
except Exception:
print("请输入正确的数字!")
author = input("请输入作者:")
query = "insert into tsglxt (ISBN,name,press,price,author) values (%s,%s,%s,%s,%s)"
values=(ISBN,name,press,price,author)
cursor.execute(query,values)
list.append(ISBN)
conn.commit() # 提交
elif a==True:
print("数据已经存在!")
else:
pri()
break
except Exception:
print("请输入正确的数字!")
# 删除
def dle():
global len
global list
a=False
if len != 0:
try:
ISBN = int(input("请输入要删除的ISBN:"))
for i in list:
if i == ISBN:
a = True
break
if ISBN != -1 and a==True:
dessql = "delete from tsglxt where ISBN='%s'" % (ISBN)
cursor.execute(dessql)
conn.commit()
list.remove(ISBN)
print(list)
pri()
len =len - 1
elif a==False:
print("没有查询到相关数据!")
else:
pri()
except Exception:
print("请输入正确的数字!")
else:
print('请先增加数据!')
# 查询
def pri():
global len
if len != 0:
cursor.execute("select * from tsglxt") # 输出表的查询结果
for i in cursor.fetchall():
print('图书管理系统:', i)
else:
print('请先增加数据!')
# 修改
def mod():
global len
global list
a=False
if len != 0:
try:
ISBN = int(input("请输入要修改的ISBN:"))
for i in list:
if i == ISBN:
a=True
break
if ISBN != -1 and a==True:
for i in cursor.fetchall():
print('图书管理系统:', i)
print("---11:修改书名---12:修改出版社---13:修改价格---14:修改作者---15:退出---")
while True:
choice = input("请输入相应修改操作>>")
if choice == "11":
name = input("请输入书名:")
upssql = "update tsglxt set name='%s' where ISBN='%s'" % (name, ISBN) # 将学号为01的性别改为女
print(upssql)
cursor.execute(upssql)
conn.commit() # 提交
continue
elif choice == "12":
press = input("请输入出版社:")
upssql = "update tsglxt set press='%s' where ISBN='%s'" % (press, ISBN) # 将学号为01的性别改为女
print(upssql)
cursor.execute(upssql)
conn.commit() # 提交
continue
elif choice == "13":
while True:
try:
price = int(input("请输入价格:"))
break
except Exception:
print("请输入正确的数字!")
upssql = "update tsglxt set price='%s' where ISBN='%s'" % (price, ISBN) # 将学号为01的性别改为女
cursor.execute(upssql)
conn.commit() # 提交
continue
elif choice == "14":
author = input("请输入作者:")
upssql = "update tsglxt set author='%s' where ISBN='%s'" % (author, ISBN) # 将学号为01的性别改为女
cursor.execute(upssql)
conn.commit() # 提交
continue
elif choice == "15":
print("---已经成功退出!---")
pri()
break
else:
print("--------输入有误,请重新输入!--------")
elif a==False:
print("没有查询到相关数据!")
pri()
else:
pri()
except Exception:
print("请输入正确的数字!")
else:
print('请先增加数据!')
#定义主类
def main():
print("***图书管理系统***")
print("---1:增加---2:删除---3:查询---4:修改---5:退出---")
while True:
choice = input("请输入相应数字操作>>")
if choice == "1":
add()
continue
elif choice == "2":
dle()
continue
elif choice == "3":
pri()
continue
elif choice == "4":
mod()
continue
elif choice == "5":
print("---已经成功退出系统!---")
break
else:
print("--------输入有误,请重新输入!--------")
#判断使用模块名是否正确,但是当前代码没使用引入模块,因此if语句不使用也能正常运行
if __name__=='__main__':
# 调用main函数作为启动函数
main()
# ----------关闭游标和连接----------
cursor.close()
conn.close