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


Posted in Python onAugust 05, 2020

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

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

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

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

Python项目:

项目前提:

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

成品图

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

架构图

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

数据库图

基于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中了, 看下面的图:

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

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

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

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

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

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

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

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

数据库中:

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

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

在student:

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

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

在books中;

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

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

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

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

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

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

Register注册模块:

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

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

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

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

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

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

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

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

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

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

爬虫程序:

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

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

学生界面 students:

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

界面GUI

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

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

函数大致:

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

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

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

管理员界面teacher:

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

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

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

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

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

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

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

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

后记:

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

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

Python 相关文章推荐
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python OpenCV获取视频的方法
Feb 28 Python
Python实现常见的回文字符串算法
Nov 14 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
基于pandas向csv添加新的行和列
May 25 Python
python实现取余操作的简单实例
Aug 16 Python
python 实现"神经衰弱"翻牌游戏
Nov 09 Python
基于Python的一个自动录入表格的小程序
Aug 05 #Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 #Python
Python如何读写字节数据
Aug 05 #Python
python中Django文件上传方法详解
Aug 05 #Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 #Python
Python如何将将模块分割成多个文件
Aug 04 #Python
Python 保存加载mat格式文件的示例代码
Aug 04 #Python
You might like
php通过文件流方式复制文件的方法
2015/03/13 PHP
php动态变量定义及使用
2015/06/10 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[03:16]DOTA2完美大师赛小组赛精彩集锦
2017/11/22 DOTA
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
在Python中增加和插入元素的示例
2018/11/01 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
django 模版关闭转义方式
2020/05/14 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
数据员岗位职责
2013/11/19 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2014年统战工作总结
2014/12/09 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android