python如何实现一个简单的图书管理系统
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"python如何实现一个简单的图书管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python如何实现一个简单的图书管理系统"文章能帮
千家信息网最后更新 2024年09月22日python如何实现一个简单的图书管理系统
这篇文章主要介绍"python如何实现一个简单的图书管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python如何实现一个简单的图书管理系统"文章能帮助大家解决问题。
环境准备
安装mysql数据库
参考文章:
MySQL数据库怎么安装?如何配置?
mysql数据库如何启动?怎么使用?
创建数据库表
创建数据库
CREATE DATABASE bookmanage;
使用数据库
use bookmanage;
创建表
create table books(id int unsigned primary key auto_increment not null,name varchar(20) default "",position varchar(40) default "",status enum('在库', '出借') default '在库',borrower varchar(20) default "");
插入数据
insert into books(name, position) value ('python从入门到放弃', 'A-1-1');
查询数据
select * from books where id=2;
修改数据
update books set name='python';
删除数据
delete from book where id=3;
代码实现
引入pymysql模块
安装pymysql
命令:pip install pymysql
封装操作数据库模块
# -*- coding: utf-8 -*-"""=============================== @Time : 2021/5/18 15:56@Author : flora.chen@FileName: handle_mysql.py@Software: PyCharm==============================="""import pymysqlclass MysqlDB: """ 操作mysql数据库 """ def __init__(self, host, user, pwd, database=None, port=3306): """ 初始化数据库链接 :param host: 主机地址 :param user: 用户名 :param pwd: 密码 :param database: 数据库名称,默认为空 :param port: 端口号,默认3306 """ self.conn = pymysql.connect( host=host, user=user, password=pwd, database=database, port=port, cursorclass=pymysql.cursors.DictCursor ) # 创建一个游标对象 self.cur = self.conn.cursor() def update(self, sql): """ 进行增删改操作 :param sql: 需要执行的SQL :return: """ # 执行SQL result = self.cur.execute(sql) # 提交事务 self.conn.commit() return result def query(self, sql, one=False): """ 进行查询操作 :param one: 判断是要返回所有查询数据还是第一条,默认是所有 :param sql: 要执行的SQL :return: """ # 执行SQL self.cur.execute(sql) if one: return self.cur.fetchone() else: return self.cur.fetchall() def close(self): """ 断开游标,关闭数据库连接 :return: """ self.cur.close() self.conn.close()if __name__ == "__main__": db = MysqlDB(host="localhost", user="root", pwd="root") print(db.query("select * from bookmanage.books")) # db.update("insert into bookmanage.books(name, position) value ('python从入门到放弃', 'A-1-1');")
图案管理系统后台实现
# -*- coding: utf-8 -*-"""=============================== @Time : 2021/5/18 16:39@Author : flora.chen@FileName: bookmanager.py@Software: PyCharm==============================="""from handle_mysql import MysqlDBdb = MysqlDB(host="localhost", database="bookmanage", user="root", pwd="root")class BookManage: """ 图书管理系统 """ @staticmethod def print_menu(): """ 菜单打印 :return: """ print("---------------------菜单-------------------------") print("[1]: 添加图书") print("[2]: 修改图书") print("[3]: 删除图书") print("[4]: 查询图书") print("[5]: 图书列表") print("[6]: 出借图书") print("[7]: 归还图书") print("[8]: 退出") def add_book(self): """ [1]: 添加图书 :return: """ print("****************添加图书****************") name = input("请输入书名:") position = input("请输入图书位置:") if name and position: db.update("insert into books(name, position) value ('{}', '{}');".format(name, position)) print("图书添加成功") else: print("书名或者图书位置不能为空,请重新输入!") num = input("继续添加请输入1, 回车退回主菜单") if num == "1": self.add_book() def update_book(self): """ [2]: 修改图书 :return: """ print("****************修改图书****************") book_id = input("请输入需要修改的图书ID:") result = db.query("select * from books where id={};".format(book_id), one=True) if result: print("当前数据为:{}".format(result)) name = input("重新输入书名,不修改输入回车:") or result["name"] position = input("重新输入位置,不修改输入回车:") or result["position"] db.update("update books set name='{}', position='{}' where id={};".format(name, position, book_id)) print("修改成功") else: print("您输入的图书ID不存在,请重新输入~") num = input("继续修改请输入1, 回车退回主菜单") if num == "1": self.update_book() def delete_book(self): """ [3]: 删除图书 :return: """ print("****************删除图书****************") book_id = input("请输入需要修改的图书ID:") result = db.query("select * from books where id={};".format(book_id), one=True) if result: print("当前数据为:{}".format(result)) confirm_num = input("确定需要删除这本书吗?确认请按1,取消请按2:") if confirm_num == "1": db.update("delete from books where id={};".format(book_id)) print("删除成功") else: print("已确认不删除该书籍~") else: print("系统中未找到该书籍!") num = input("继续删除请输入1, 回车退回主菜单") if num == "1": self.delete_book() def query_book(self): """ [4]: 查询图书 :return: """ print("****************查询图书****************") name = input("请输入您要查询的图书名称(模糊匹配):") if name: result = db.query("select * from books where name like '%{}%';".format(name)) if result: print("当前查询到如下书籍信息:{}".format(result)) else: print("未查询到相关书籍信息~") else: print("书名不能为空!") num = input("继续查询请输入1, 回车退回主菜单") if num == "1": self.query_book() def book_list(self): """ [5]: 图书列表 :return: """ print("****************图书列表****************") result = db.query("select * from books;") for i in result: print("编号:{}, 书籍名:{}, 位置:{}, 状态:{}, 借阅人:{}".format(i["id"], i["name"], i["position"], i["status"], i["borrower"])) def borrow_book(self): """ [6]: 出借图书 :return: """ print("****************出借图书****************") book_id = input("请输入需要借阅的图书ID:") result = db.query("select * from books where id={};".format(book_id), one=True) if result: if result["status"] == "出借": print("抱歉,该书已经借出!") else: while True: borrower = input("请输入借阅者的名字:") if borrower: db.update("update books set borrower='{}' where id={};".format(borrower, book_id)) db.update("update books set status='出借' where id={};".format(book_id)) print("图书借阅成功~") break else: print("借阅者的名字不能为空, 请重新输入") else: print("未查询到相关书籍信息~") num = input("继续借阅请输入1, 回车退回主菜单") if num == "1": self.borrow_book() def back_book(self): """ [7]: 归还图书 :return: """ print("****************归还图书****************") book_id = input("请输入需要归还的图书ID:") result = db.query("select * from books where id={};".format(book_id), one=True) if result: if result["status"] == "在库": print("该书是在库状态,请确认图书编号是否正确!") else: db.update("update books set status='在库' where id={};".format(book_id)) db.update("update books set borrower='' where id={};".format(book_id)) print("书籍归还成功~") else: print("未查询到相关书籍信息~") num = input("继续归还书籍请输入1, 回车退回主菜单") if num == "1": self.borrow_book() def quit(self): """ [8]: 退出 :return: """ print("****************退出****************") db.close() def main(self): """ 程序运行的流程控制 :return: """ print("---------------欢迎进入图书管理系统----------------") while True: self.print_menu() num = input("请输入选项:") if num == "1": self.add_book() elif num == "2": self.update_book() elif num == "3": self.delete_book() elif num == "4": self.query_book() elif num == "5": self.book_list() elif num == "6": self.borrow_book() elif num == "7": self.back_book() elif num == "8": self.quit() break else: print("您的输入有误~ 请按照菜单提示输入,谢谢!")if __name__ == "__main__": book = BookManage() book.main()
关于"python如何实现一个简单的图书管理系统"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
图书
输入
数据
查询
数据库
菜单
系统
书籍
管理系统
管理
借阅
出借
成功
书名
位置
信息
知识
名字
名称
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为服务器收入排行榜
李娜可视网络技术有限公司
安康市系统软件开发
计算机网络技术专业
java软件开发如何外包
浙江服务器维修云主机
优酷网络技术北京
魔兽世界怎么查询服务器
西安世邦网络技术有限公司
dell的服务器
成都c语言软件开发报价
市公安局网络安全培训
数据库修改记录关键字
英业达k900服务器管理
宝马汇数据库密码
常熟品牌网络技术费用
贝斯尼软件开发
机场 网络安全应急预案
生活中网络安全如何防范
数据库异构指的是
关于网络安全风险预警的通知
邮件服务器的基本功能
如何在服务器留后门
云服务器转发 速度
魔兽世界怎么查询服务器
辅助软件租服务器
软件开发 财务处理
蔡甸区信息网络安全维护资费
手机的服务器在哪里
katago云服务器