作业就是写一个简单 的图书信息管理系统,实现增删改查功能,附带了登录注册功能,就是把上一次的代码直接拿来用了。如下:
主函数:main.py
import pymysql import getpass import time from operate import manage #查询用户名是否存在 def check(uname): namelist = [] conn1 = pymysql.connect("localhost", "root", "admin", "login", charset=\'utf8\') cur = conn1.cursor() sql1 = "select uName from logintable" cur.execute(sql1) results = cur.fetchall() for row in results: namelist.append(row[0]) i = 0 for x in namelist: if (uname == x): i = 1 break return i # 注册函数 def register(): i = 1 username = "" passwd = "" while i == 1: username = input("请输入用户名:") if (check(username) == 1): print(\'该用户名已被占用,请重新输入\') continue if (username.isalnum()): break else: print("用户名只能包含数字与英文字母!!!") while i == 1: passwd = getpass.getpass("请输入密码:") if (len(passwd) > 5 and len(passwd) < 21): break else: print("密码为6至20位!!!") pswd = getpass.getpass(\'请再输入一遍密码:\') if (passwd == pswd): print(\'注册成功!\') else: print(\'两次密码不相同,请重新注册!!!\') register() # 打开数据库连接 conn = pymysql.connect("localhost", "root", "admin", "login", charset=\'utf8\') # 使用corsor()方法创建一个游标对象 cursor = conn.cursor() # 使用execute()方法执行sql语句,将注册的信息插入到数据库中 sql = "INSERT INTO logintable (uName,pw) VALUES (%s,%s)" val = (username, passwd) # 这两行执行sql语句 cursor.execute(sql, val) conn.commit()#提交数据库执行 cursor.close() conn.close() # 返回主界面 first() # 登录函数 def login(): sql = "select * from logintable" conn = pymysql.connect("localhost", "root", "admin", "login", charset=\'utf8\') cursor = conn.cursor() cursor.execute(sql) result = cursor.fetchall() i = 1 s = 0 while i == 1: uname = input(\'请输入用户名:\') if (check(uname) == 0): print(\'该用户不存在!!!\') continue else: while s < 3: passwd = getpass.getpass("请输入密码:") key = 0 for row in result: if (uname == row[0] and passwd == row[1]): key = 1 if (key == 1): print(\'登录成功!!!\') break else: print(\'密码错误!请重新登录!\') s = s + 1 if s == 3: print(\'账户已锁定!!!请 5 s 后重新登录!!!\') time.sleep(5) break manage() #主界面函数 def first(): print(\'--------------xxx图书信息管理系统------------\') print(\'输入序号,进行选择:\') print(\'1、注册\') print(\'2、登录\') print(\'3、退出\') select = input(\'请选择: \') if select == \'1\': register() elif select == \'2\': login() elif select == \'3\': exit(0) else: print(\'请输入正确序号:\') first() first()
增删改查模块 :operate.py
import pymysql #from sqlConnect import addToMysql,check_bookname,check_author from mysqlOperate import* import mysqlOperate #管理函数 def manage(): m=1 while m == 1: print("-----------------------图书管理----------------------") print("1、查询图书信息") print("2、添加图书信息") print("3、删除图书信息") print("4、修改图书信息") print("5、退出") select = input("请输入编号选择功能:") if select == \'1\': check() elif select == \'2\': add() elif select == \'3\': delete() elif select == \'4\': update() elif select == \'5\': exit(0) else: print("请输入正确序号!!!") #添加函数 def add(): print("请输入图书信息:") bookname=input("请输入书籍名称:") author=input(\'请输入作者姓名:\') price=input(\'请输入价格:\') addToMysql(bookname,author,price) #查询函数 def check(): print("-----------------------查询---------------------") print("请选择:") print("1、按书名查询 2、按作者查询 3、查询所有图书 (其他任意键返回)") select=input(\'请输入编号:\') if select==\'1\': bookname = input("请输入书名:") check_bookname(bookname) elif select==\'2\': authorname=input("请输入作者姓名:") check_author(authorname) elif select==\'3\': check_all() #删除函数 def delete(): print("-----------------------删除----------------------") bookname=input("请输入要删除的书名:") check_bookname(bookname) select=input("确定删除?(请输入y/n):") if select==\'y\': delete_book(bookname) elif select==\'n\': print("未删除!!!") else: print("输入错误!!已退出!!!") #修改函数 def update(): print("-----------------------修改------------------------") bookname=input("请输入要修改的书名:") check_bookname(bookname) select=input(\'确定修改?(y/n):\') if select==\'n\': print(\'已返回\') elif select==\'y\': update_book(bookname)
数据库操作模块:mysqlOperate.py
import pymysql #创建数据库连接 conn=pymysql.connect("localhost","root","admin","login",charset=\'utf8\') #创建游标对象 cursor=conn.cursor() #添加图书 def addToMysql(name,author,price): str="INSERT INTO bookinfo (bookname,author,price) VALUES (%s,%s,%s)" val=(name,author,price) cursor.execute(str,val) conn.commit() print("添加成功") #按书名查询 def check_bookname(bookName): cursor.execute(\'SELECT * FROM bookinfo WHERE bookname = %s\',(bookName,)) result=cursor.fetchall() i = 0 if result==None: print (\'该书不存在!!!\') else: for row in result: print("-------第%s本书-------" % i) print("book_id:", row[0]) print("书名:", row[1]) print("作者:", row[2]) print("价格:", row[3]) i = i + 1 # 按作者查询 def check_author(author): cursor.execute(\'SELECT * FROM bookinfo WHERE author = %s\',(author,)) result=cursor.fetchall() i=1 if result==None: print(\'该作者不存在!!!\') else: for row in result: print(\'-------第%s本书--------\'% i) print("book_id:", row[0]) print("书名:", row[1]) print("作者:", row[2]) print("价格:", row[3]) i = i + 1 #查询所有图书 def check_all(): cursor.execute(\'SELECT * FROM bookinfo\') result=cursor.fetchall() i=1 for row in result: print(\'-------第%s本书--------\' % i) print("book_id:", row[0]) print("书名:", row[1]) print("作者:", row[2]) print("价格:", row[3]) i = i + 1 # 删除书籍 def delete_book(bookname): cursor.execute(\'DELETE FROM bookinfo WHERE bookname = %s\' ,(bookname,)) conn.commit() print(\'删除成功!!!\') #修改书籍信息 def update_book(bookname): new_bookname=input(\'请输入修改书名:\') new_author=input(\'请输入修改作者名称:\') new_price=input(\'请输入修改价格:\') cursor.execute(\'UPDATE bookinfo SET bookname=%s,author=%s,price=%s WHERE bookname=%s\',(new_bookname,new_author,new_price,bookname)) conn.commit() print(\'修改成功\')
数据库设计:
bookinfo表
logintable表:
另外,执行时跟上一次作业一样,通过cmd执行