当前位置:   article > 正文

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别添加代码逻辑实现_python图书管理系统

python图书管理系统

锋哥原创的PyQt6图书管理系统视频教程:

PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频,包括:PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~、第2讲 登录功能UI设计实现、第3讲 数据库操作工具包dbUtil.py封装等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV18t4y1R7Qp/我们先建下 图书表和图书列表表,因为这两个表是主外键关联的,存在多对一的关系,所以我们一起建了。

  1. CREATE TABLE `t_book` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `bookName` varchar(20) DEFAULT NULL,
  4. `author` varchar(20) DEFAULT NULL,
  5. `sex` varchar(10) DEFAULT NULL,
  6. `price` float DEFAULT NULL,
  7. `bookTypeId` int(11) DEFAULT NULL,
  8. `bookDesc` varchar(1000) DEFAULT NULL,
  9. PRIMARY KEY (`id`),
  10. KEY `bookTypeId` (`bookTypeId`),
  11. CONSTRAINT `t_book_ibfk_1` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)
  12. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
  13. /*Data for the table `t_book` */
  14. insert into `t_book`(`id`,`bookName`,`author`,`sex`,`price`,`bookTypeId`,`bookDesc`) values (1,'java编程思想2','xx','男',100,1,''),(2,'python编程','哈哈','女',18,1,'111');
  15. /*Table structure for table `t_booktype` */
  16. DROP TABLE IF EXISTS `t_booktype`;
  17. CREATE TABLE `t_booktype` (
  18. `id` int(11) NOT NULL AUTO_INCREMENT,
  19. `bookTypeName` varchar(20) DEFAULT NULL,
  20. `bookTypeDesc` varchar(1000) DEFAULT NULL,
  21. PRIMARY KEY (`id`)
  22. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
  23. /*Data for the table `t_booktype` */
  24. insert into `t_booktype`(`id`,`bookTypeName`,`bookTypeDesc`) values (1,'计算机类2','计算机相关图书2'),(5,'文学类','。。。');

再新建下图书类别实体,entity下新建BookTypeModel,里面新建BookType类:

  1. """
  2. 图书类别实体类
  3. 作者 : 小锋老师
  4. 官网 : www.python222.com
  5. """
  6. # 图书类别类
  7. class BookType:
  8. # 编号 主键ID
  9. id = None
  10. # 图书类别名称
  11. bookTypeName = None
  12. # 图书类别描述
  13. bookTypeDesc = None
  14. def __init__(self, bookTypeName, bookTypeDesc):
  15. self.bookTypeName = bookTypeName
  16. self.bookTypeDesc = bookTypeDesc

首先我们实现重置功能:

定义reset方法:

  1. def reset(self):
  2. """
  3. 重置
  4. :return:
  5. """
  6. self.bookTypeNameInput.setText("")
  7. self.bookTypeDescInput.setPlainText("")

重置按钮绑定下点击事件,关联reset槽函数

  1. # 重置按钮点击事件
  2. self.resetBtn.clicked.connect(self.reset)

再实现下添加功能;

dao下新建bookTypeDao.py,里面新建add方法:

  1. """
  2. 图书类别数据访问对象
  3. 作者 : 小锋老师
  4. 官网 : www.python222.com
  5. """
  6. from entity.BookTypeModel import BookType
  7. from util import dbUtil
  8. def add(bookType: BookType):
  9. """
  10. 图书类别添加
  11. :param bookType: 图书类别实体
  12. :return: 返回执行的记录条数
  13. """
  14. con = None
  15. try:
  16. con = dbUtil.getCon()
  17. cursor = con.cursor()
  18. cursor.execute(f"insert into t_booktype values(null,'{bookType.bookTypeName}','{bookType.bookTypeDesc}')")
  19. return cursor.rowcount
  20. except Exception as e:
  21. print(e)
  22. con.rollback()
  23. return 0
  24. finally:
  25. dbUtil.closeCon(con)

bookTypeAdd.py的Ui_Form类里,新建下add方法:

  1. def add(self):
  2. """
  3. 添加图书类别
  4. :return:
  5. """
  6. bookTypeName = self.bookTypeNameInput.text()
  7. bookTypeDesc = self.bookTypeDescInput.toPlainText()
  8. if bookTypeName.strip() == "":
  9. QMessageBox.warning(None, '系统提示', '图书类别名称不能为空')
  10. else:
  11. bookType = BookType(bookTypeName, bookTypeDesc)
  12. if bookTypeDao.add(bookType) > 0:
  13. QMessageBox.information(None, '系统提示', '添加成功')
  14. self.reset()
  15. else:
  16. QMessageBox.warning(None, '系统提示', '添加失败')

添加按钮绑定add事件:

  1. # 添加按钮点击事件
  2. self.addBtn.clicked.connect(self.add)

最后是测试,OK;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/747784
推荐阅读
相关标签
  

闽ICP备14008679号