基于python图书馆管理系统设计实例详解

写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉!

这个项目不是我的作业, 只是无意中被拉进来了,然后就承担了所有,肝了一周多,终于完成,但这个也算是一个很大的项目了吧,对于我现在来说,写这个项目遇到了很多困难,这是真的,其中涉及到数据库的使用,就遇到了一点瓶颈, 但这不算什么,还是要被我搞定的。

梦想就像这个远处夕阳,终究触手可及!

Python项目:

项目前提:

这个项目涉及到的知识点有很多, 知识串联起来就会显得复杂,但这也是锻炼自己的一个能力。 下面先描述这个项目的大致结构。

成品图

架构图

数据库图

思维导图

项目感想:
画这个思维导图的时候,我想了很久,是不是所有功能都需要去实现,我们把这个项目的入口分别学生端和教师端, 那是否就有对应的存储数据的模块呢, 于是我想到了使用数据库, 使用数据库去建立对应的表,然后不就可以分别保存了吗,而在这个项目中, 界面的选择也是很关键, 如果不适用界面,还是使用一个原生代码交互式, 那么这个项目的挑战性就很不人性化,也不友好, 这个我还是选择了tkinter库, 简单上手, 用来设计简单的界面最好不过了, 然后就是关于 程序的框架 如何去设计, 这个没有现存的框架去套用, 所以我使用了面对对象的思维去阐述,毕竟老师和学生都有很多相同点, 在这里使用函数的继承和多态最好不过了,然后连接到数据库,这个数据库我是用MySQL去搭建的, 其他的数据库也是一样的道理,其他的也就顺手写完了。整体来说, 这个项目提升还有很大,只不过我现在能力不足, 也快考试了,没这么多时间去搞,生活还得向前走,加油!

因为这个项目代码太多了, 在这里就不分享出来,有需要的可以私聊找我!

如果觉得文章很长,可以根据目录进行跳转阅读! 也可以收藏关注点击,谢谢。

项目框架:

在__init__函数中:

这是一个构造函数, 在这里单独的拿出来,就是方便程序的运行,也方便打印一些help信息。 在下面这些代码中, 导入了很多模块,对的, 这些不是第三方库哦, 这是我自己编写的类函数,在下面的实例中,你们也可以看到,使用这样的方便,在编写代码的时候可以方便很多,你们一定要用!

# # -*- coding : utf-8 -*- # @Time : 2020/7/1 21:29 # @author : 沙漏在下雨 # @Software : PyCharm # @CSDN : https://me.csdn.net/qq_45906219 from TeacherLogin import TeacherLogin from StudentLogin import StudentLogin from mysql_login import Mysql from Login import Login text = ''' author: 沙漏在下雨 time: 七月计划 尝试使用python 搭建一个 图书馆管理系统 使用tkinter作为简易的GUI界面 功能上满足日常所需 数据保存在本地数据库中 ''' print(text) print(help(StudentLogin)) print(help(TeacherLogin)) print(help(Mysql)) print(help(Login)) Login()

Login登入模块:

讲道理,我应该先阐述一下注册的, 不然都没有账号,怎么点击登入。但是因为我把主要模块写在了login中了, 看下面的图:

这里登入方式有二种, 注册方式也有二种, 分别是管理员和学生,在login模块中, 设置了一个注册按钮, 点击注册按钮, 整个界面就会跳转到注册界面中, 这个稍后再说, 所以整体构架还是存放到login中, 我觉得会很方便一点, 主要是便于传root 和 password 中。

我们先看看login模块的大致函数,然后细讲:

整个__init__ 中, 是生成这个界面的函数, 包括一些必要的值,也构造在其中, 然后根据用户输入的账号密码, 进行身份的验证, 这个模块写到test_db() 中, 如果账号正确, 那么就进入对应的模块中, 不对,那么就会有错误弹窗警告,比如这个,或者其他的。

怎么进行身份的验证呢 ? 这个其实也很简单, 连接到数据库之后,就向数据库执行检索命令, 根据账号进行初步查找, 然后如果账号密码都正确的话, 那不就是身份正常了吗, 所以思路正确。
登入成功之后, 就会对数据库进行表单的更新, 我把这个功能写在了update中, 会更新最后登入时间, 时间的获取我写在了get_time中, 这样就能简单的实现, 一个登入模块的设置了。

数据库中:

我觉得还是有必要先讲一下数据库, 了解一下数据库的大致构造, 不然你们看的很晕,我也不好讲这些。

我建立了一个数据库 book , 里面新建了三个表单, student, teacher, books,分别学生,老师, 图书表, 互不干扰,相互工作。

在student:

表的大致构造如上, 其实也就是简单的信息, 复杂的我暂时也做不了, 然后teacher 表单 信息 其实和 students 是一样的, 只不过这样设计, 可以封开, 更好管理!

在books中;

books字段的设计,其实也不是很难, 把一些基本信息加入就可以了,然后这个books中, 我写了一个小爬虫, 把表单信息补充了一下, 先充实一下,方便接下来的操作。

然后我们讲一下这个模块中, 这是一个连接数据库的一个父类,这就很方便其他的类进行继承, 或者重写操作, 所以,这个类的实现是十分简单的,也就是进行数据库的连接, 关闭, 获得数据库的游标 和 db值, 让其他类去继承这些, 就可以进行数据库的简单操作了,。

然后我们看看如何注册账号,

Register注册模块:

差点我就忘记注册这个模块的设计了, 最开始的账号是我自己直接在数据库中填入的,我说怎么感觉少了很多来着, 后面急急忙忙的补上去。
注册GUI:

注册分为二种注册, 一个管理员, 一个学生, 在登入的界面进行选择,然后注册的界面也会发生相对于的变化。

变化就是 把 这个管理员注册 改成 学生注册 哈哈哈哈哈哈

注册的时候,也会进行数据的检测, 比如账号是否被注册咯, 密码是不是过于简单之类的, 先给出注册的函数吧

我们在输入框中输入的信息,会通过init函数进行传值, 所有的都会成为本地变量, 在start_reg中 会进行信息检测, 然后给出一些错误弹窗,比如这样:

然后你就要重新思考一个帅气的名字, 就可以方便你的注册了,当所有的正常之后,就会运行reg_people 函数, 进行表单的提交,实际上就是更新数据库, 更新对应的数据库, 如果是学生注册就更新student 反之更新teacher表,这样就完成了注册模块。 然后就可以很简单的登入了, 在这里给一下爬虫程序先

爬虫程序:

这个代码就不解释了,需要私聊

学生界面 students:

我们选择学生登入, 正确输入, 就会跳转至学生界面:

界面GUI

登入之后,显示这样的界面, 虽然有点丑,,没事,。

函数大致:

基本上的功能都能实现,也有对应的异常处理方式, 以及弹窗提示, 换句话说, 你想得到的东西,在这里都能实现, 需要就私聊吧,写着太累了,一个个描诉。

管理员界面teacher:

不同于学生界面, 管理员界面的功能更加复杂,不, 更加丰富,界面:

界面就是这样的,tk界面外观勉勉强强, 还行吧。

函数功能也是一样的,你想的我都能实现,还是一句话,没有你们想不到的,只有我老八做不到的,奥里给,肝了。

后记:

一个多礼拜, 千行代码, 肝了兄弟们, 需要的私聊我, 还是个学生,你懂的。

到此这篇关于基于python图书馆管理系统设计实例详解的文章就介绍到这了,更多相关基于python图书馆管理系统设计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

(0)

相关推荐

  • Python的字符串反射机制

    区分两个概念,f1,"f1",前者是一个函数名,后者是一个字符串,是不同的东西..我们可以用f(1) 调用一个函数"f(1)"不可以去调用.就是不可以去调用看起 ...

  • 【技能提升】python操作数据库完成接口测试

    各位小伙伴,接口测试中我们会使用到各种各样的数据,特别是在编写接口自动化测试代码时,我们不可能在代码中写"死"数据,我们需要把数据和代码分离,便于我们后期维护代码和数据. 数据储存 ...

  • 第77天:Python 操作 SQLite

    第77天:Python 操作 SQLite

  • TKinterDesigner 教程

    TKinterDesigner 使用教程 开发者 Honghaier 版本号 V1.3 更新日期 2020-04-17 GitHub: https://github.com/honghaier-gam ...

  • UI设计模式优漫动游教育的七大基本原则

     一.单一责任原则.   单点职责原则表达了模块组件的功能相关性.对于软件更改来说,类的更改只有一个原因:一般而言,一个类只负责一个职责.   (1)SRP原理简单直观,但在实际编码中难以正确使用,需 ...

  • 六爻占卜测四肢疾病断卦详解,六爻测身体四肢健康断卦实例详解

    ​在六爻预测中常常会碰到求测者的四肢受过伤,残疾或有病.而预测师有时却无法准确的判断出是哪里受过伤,残疾或有病. 刚开始时我在给别人预测时也不好理解四肢的判断方法.偶然的一次,有人说了一句" ...

  • 7实例详解盲派天干生与合做功对命局的影响

    天干的生与合即天干的合财与合官:合官的时候要注 意官能不能独立存在,官有无生印,印有无生比劫:合财的时候一定要看财的 出处. 合官与合财都要看出处,天干五合代表日主在社会上想干的事.合官与合财是 不同 ...

  • 织梦CMS常用的几种字段判断输出实例详解

    我们在使用织梦CMS制作网站时,对于某个字段,无论是默认字段还是自定义字段,偶尔会使用一些判断语句来实现我们的需求.下边列出了几种常见的需求.以及字段的判断输出实例. 第一种:织梦自定义字段,如果没有 ...

  • 阴宅篇—实例详解阴阳宅的位置与人生

    运动,将时方象数带给人们理据理术.而一切数术理据·往往是一切象数的基因能量在应时消长转化中所产生运动的规律与周期.天时地方如此,人生人体与人性人为和万事万物如此.天地人合. 时间,是珍贵的.甚至要超出 ...

  • PLC编程:从原理图到程序的4个经典实例详解

    本文中将以分析几个案例的方式拆解程序编程的过程,从控制过程到原理及梯形图.如果采用其它系列或品牌的PLC,其逻辑结构大同小异. 这次我们将拆解的案例 1.喷泉控制 2.交通信号灯控制 3.多级传送带控 ...

  • 手把手教你入门 Git 教程,图文实例详解

    Git简介 Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具. 实用 ...

  • 如何透彻理解摄影后期调色?从基本原理到操作实例详解

    如何透彻理解摄影后期调色,什么是真正的摄影后期照片调色? 紫枫本节课试着用最通俗易懂的语言透彻讲解摄影后期调色,从基本调色的原理到调色的操作实例,一文让你弄懂摄影后期调色的方方面面,前世今生. 文章很 ...

  • 基于100个案例,详解最高法“合同目的不能实现”裁判规则

    " 合同解除制度作为债务履行不能的救济方式,可以使当事人摆脱原有合同权利义务关系的束缚,在公平合理的基础上重新获得交易自由.<民法典>规定的合同解除制度包括约定解除与法定解除,其 ...

  • 实例详解PhotoShop中的计算命令的原理

    作者来源:腾龙视觉 很多初学Photoshop的朋友,都使用过"计算"命令,但对这个命令的工作原理却大多不太了解,甚至有些PS高手也不一定能够说的清楚. 利用"计算&qu ...