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

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

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

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图书馆管理系统设计内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://blog.csdn.net/qq_45906219/article/details/107286924

python的图书管理项目教程_基于python图书馆管理系统设计实例详解相关推荐

  1. python计算各类型电影的评分_【Python数据科学实战项目】之 基于MovieLens的影评趋势分析|详解...

    原标题:[Python数据科学实战项目]之 基于MovieLens的影评趋势分析|详解 注:图片源于https://movielens.org/ 1. 项目任务 1.1 数据来源 本项目使用Group ...

  2. python图书馆管理系统实验报告_基于python图书馆管理系统设计实例详解

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

  3. 基于点击量的趋势分析python_【Python数据科学实战项目】之 基于MovieLens的影评趋势分析详解...

    原标题:[Python数据科学实战项目]之 基于MovieLens的影评趋势分析详解 本文转自: 数据科学DataScience 注:图片源于https://movielens.org/ 1. 项目任 ...

  4. python画二维数组散点图_基于python二维数组及画图的实例详解

    基于python二维数组及画图的实例详解 下面小编就为大家分享一篇基于python 二维数组及画图的实例详解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 1.二维数组取值 注:不管 ...

  5. python 字符串替换_Python基础教程,第四讲,字符串详解

    本节课主要和大家一起学习一下Python中的字符串操作,对字符串的操作在开发工作中的使用频率比较高,所以单独作为一课来讲. 学完此次课程,我能做什么? 学完本次课程后,我们将学会如何创建字符串,以及如 ...

  6. python基础语法手册format-python的格式化输出(format,%)实例详解

    皇城PK Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢? 自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问 ...

  7. python数据清理的实践总结_python 数据的清理行为实例详解

    python 数据的清理行为实例详解 数据清洗主要是指填充缺失数据,消除噪声数据等操作,主要还是通过分析"脏数据"产生的原因和存在形式,利用现有的数据挖掘手段去清洗"脏数 ...

  8. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

  9. python脚本例子_python dict 字典 以及 赋值 引用的一些实例(详解)

    最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) 看了一下创建字典 ...

最新文章

  1. 名头不小!!VMware vSphere实为VI升级版。
  2. 聚类 K-Means Using Python
  3. linux如何锁定文件夹,如何在没有加密的情况下保护Linux / Unix上的文件夹? | MOS86...
  4. postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解
  5. tp5支持啥数据库_MS Access数据库是被严重低估的一款优秀软件
  6. MySQL5.7.17的简单配置文件
  7. sql2005版本以上的分页存储过程
  8. SGU 186.The Chain
  9. HDU 4553:约会安排(区间合并)
  10. 在类库中使用Session
  11. 用Python实现BP神经网络(附代码)
  12. mockserver
  13. python混合线性模型_如何在Python statsmodels中有多组线性混合效应模型?
  14. 无限容量还不限速的网盘,了解一下~
  15. 洛谷 P3403 跳楼机 题解
  16. 小白记录问题(2)——关于np.savez()与np.laod()储存与读取字典数据的问题
  17. Windows 内存机制说明
  18. 离散数学 用c++实现离散数学逻辑推理
  19. 【Kaggle】 Russia房产价格预测top1%(22/3270)方案总结
  20. Python 万年历

热门文章

  1. 使用率激增 250%,这份报告再次将 Serverless 推向幕前
  2. 探索中国广电“智慧城市”未来转型路径
  3. 58到家为2000万家庭提供上门生活服务的背后是云计算的高效支撑
  4. Akka in Schedulerx2.0
  5. 当学术大家遇到技术大拿,如何攻克数据库应用头号难题?数位产学研大咖这样解读
  6. Java并发编程笔记之FutureTask源码分析
  7. 理解卷积神经网络的利器:9篇重要的深度学习论文(上)
  8. 如何在 Kubernetes Pod 内进行网络抓包
  9. 2021银行共探转型新动能:大行酝酿质变 小行跨越数字鸿沟
  10. 如何破解“中国开源拿来主义”?包云岗的几点分析