基于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中使用logging模块打印log日志详解
Apr 05 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
python 处理string到hex脚本的方法
Oct 26 Python
Django中ORM外键和表的关系详解
May 20 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python根据文本生成词云图代码实例
Nov 15 Python
Python实现钉钉订阅消息功能
Jan 14 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python实现简单的猜单词
Jun 15 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 和 MySQL 基础教程(四)
2006/10/09 PHP
一个域名查询的程序
2006/10/09 PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php adodb介绍
2009/03/19 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python统计cpu利用率的方法
2015/06/02 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python:动态路由的Flask程序代码
2019/11/22 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
元旦促销方案
2014/03/15 职场文书
测控技术自荐信
2014/06/05 职场文书
同学聚会邀请函
2015/01/30 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
复兴之路展览观后感
2015/06/02 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
Pandas搭配lambda组合使用详解
2022/01/22 Python
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android