python如何实现一个简单的图书管理系统
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"python如何实现一个简单的图书管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python如何实现一个简单的图书管理系统"文章能帮
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
郑州网络安全周2019
怎么将数据导入数据库
智能软件开发专业干啥
gmod怎么调整服务器
网络安全你我共进
服务器电源风扇插电声音大
乐清市千和网络技术有限公司
学校宣传网络安全法总结
苏州云数据库网络异常
北京人工智能服务器租赁虚拟主机
技能大赛计算机网络技术
锡山区定制软件开发
国外博士论文数据库
服务器共享目录
网络安全手抄报. 漂亮
网络安全相关工作规范
建行软件开发中心收入
项目中数据库转换
黄浦区软件视频系统服务器
巅峰网络技术研发工作室
access数据库是什么型数据库
网络安全与远程接入设计
蔡甸订制软件开发方案
意识形态网络安全情况分析
服务器访问网页
山东济南市浪潮存储服务器多少钱
数据库1292错误解决办法
软件开发未完成中止
服务器报警A71
服务器分区怎么扩展