import pymysql
database = pymysql.connect(
host='127.0.0.1',
user='root',
password='xxxx',
charset='utf8',
port=3306,
database='spider10'
)
cursor = database.cursor(pymysql.cursors.DictCursor)
# 查询图书信息
def search_book_id_name():
book_id = input("请输入图书ID:")
book_name = input("请输入图书名称:")
sql = "SELECT * FROM spider10.book_data WHERE book_id = %s or book_name = %s"
cursor.execute(sql, (book_id, book_name))
result = cursor.fetchone()
if result:
print(result)
# print("共找到", len(result[]), "条图书信息")
print("图书信息如下:", "------" * 100)
for i in result:
print("图书信息为:", i, ":", result[i])
def search_book_type():
book_type = input("请输入图书类型:")
sql = "SELECT * FROM spider10.book_data WHERE book_type = %s"
cursor.execute(sql, (book_type,))
result = cursor.fetchall()
if result:
print("共找到", len(result), "条图书信息")
print("图书信息如下:", "------" * 100)
for i in result:
print(i)
# search_book_type()
def search_book_author():
book_author = input("请输入图书作者:")
sql = "SELECT * FROM spider10.book_data WHERE book_author = %s"
cursor.execute(sql, (book_author,))
result = cursor.fetchall()
if result:
print("共找到", len(result), "条图书信息")
print("图书信息如下:", "------" * 100)
for i in result:
print(i)
# 借书
def borrow_book():
book_id = input("请输入需要借图书的ID:")
lend_book_number = int(input("请输入需要借阅的图书数量:"))
sql = """
select * from spider10.book_data where book_id=%s
"""
cursor.execute(sql, (book_id,))
result = cursor.fetchone()
if result:
lend_number = result['lend_number']
if int(lend_number) >= lend_book_number:
sql = """
update spider10.book_data set lend_number=lend_number-%s where book_id=%s
"""
cursor.execute(sql, (lend_book_number, book_id))
database.commit()
print(f"借阅成功!,已借阅{lend_book_number}本,还可借阅{int(lend_number) - lend_book_number}本")
sql_2 = """
update spider10.book_data set user_status="借阅中" where book_id=%s
"""
cursor.execute(sql_2, (book_id,))
database.commit()
print("借阅状态已更新!")
else:
print("图书库存不足!")
else:
print("图书不存在!")
return True
# borrow_book()
# 还书
def return_book():
book_id = input("请输入需要还图书的ID:")
return_book_num = int(input("请输入需要还的图书数量:"))
sql = """
select lend_number from spider10.book_data where book_id=%s and user_status="借阅中"
"""
cursor.execute(sql, (book_id,))
result = cursor.fetchone()
if result:
lend_number = return_book_num + result['lend_number']
sql = """
update spider10.book_data set lend_number=%s where book_id=%s
"""
cursor.execute(sql, (lend_number, book_id))
database.commit()
print(f"还书成功!,已还{return_book_num}本,还可借阅{int(lend_number)}本")
return True
def main():
while True:
print("1.查询图书信息")
print("2.借阅图书")
print("3.还书")
print("4.退出系统")
choice = input("请输入您的选择:")
if choice == "1":
print("图书信息查询")
print("1.按图书ID和名称查询")
print("2.按图书类型查询")
print("3.按图书作者查询")
choice_2 = input("请输入您的选择:")
if choice_2 == "1":
search_book_id_name()
elif choice_2 == "2":
search_book_type()
elif choice_2 == "3":
search_book_author()
else:
print("输入错误,请重新输入!")
elif choice == "2":
borrow_book()
elif choice == "3":
return_book()
elif choice == "4":
exit()
else:
print("输入错误,请重新输入!")
if __name__ == '__main__':
main()
本课题要求编写Python程序实现对图书信息录入、图书信息查询、图书借阅等方面的管理。一个综合的图书借阅管理系统,要求能够管理图书的基本信息(包含新图书入库、读者图书查询借阅等),需要实现以下功能:读取以数据文件形式存储的图书信息;管理员可以增加、修改、删除图书的信息;读者可以按照图书名、作者名、索书号等查询图书,并可通过该系统实现对图书的借阅、续借和归还;读者还可查询自己所借图书的信息(是否归还、归还日期等)。
要能提供以下几个基本功能:
(1)系统内的相关信息文件由程序设计人员预先从键盘上录入,文件中的数据记录不得少于20条;
(2)设计并实现系统的相关界面,提供良好的交互界面;
(3)登录时输入帐号以区分读者和管理员;
(4)读者信息查询:
- 图书查询借阅功能:输入一个书名(或索书号、作者等其他信息),查出相关图书的基本信息并显示输出,同时提示是否需要借阅该图书;
- “我的”功能:显示个人图书借阅历史,显示所借图书的状态(是否归还、归还日期)、并选择是否归还或续借。
(5)管理端信息查询:
管理员可以增加、修改、删除图书的信息。
一 、导入需要的模块
import pymsql
二、完成admin操作
这部分比较简单,主要都是一些单表查询,增删改查