大家好,你们喜欢的梦幻编织者回来了
随着计算机网络和信息技术的不断发展,人类信息交流的方式从根本上发生了改变,计算机技术、信息化技术在各个领域都得到了广泛的应用。图书馆的规模和数量都在迅速增长,馆内藏书也越来越多,管理这些庞大的体系是很困难的,因为图书馆中的情况是随时改变的,因此对图书进行管理,对工作人员来说是非常困难的,图书管理系统利用现代化的计算机技术对大量图书进行管理,图书管理系统相比与传统的手工管理模式,其检索速度更快也更准确。计算机存储技术也降低了运营成本,同时人性化的操作界面也让图书管理员更乐于投入到信息化、自动化的管理。
本文介绍了管理信息系统的基础设计方法,介绍了整个应用系统的设计思路,对各个部分进行了分析,最终完成了一个完整的设计方案;本文设计的是一个图书管理系统,包括管理员页面和个人页面登录进入主菜单,个人页面中实现了可以通过自己的搜素找到自己喜欢的书籍并进行借阅,还可以查到自己借阅的图书,管理员页面实现书籍页面增删改查,更好的管理图书。
本套图书管理系统具有很好的易用性和安全性,系统功能齐全,可以满足图书馆管理的相关工作,希望该图书管理系统能为同类系统的开发提供相应的参考价值。
关键词:
图书管理系统;Django;ORM;Js;信息化;数据库。
第1章 绪论
1.1毕业设计主要内容、功能及技术指标
随着计算机技术的迅猛发展,也带动了信息化技术飞速发展,计算机和信息化表现出的强大功能为人类所重视,在信息技术不断的发展过程中,图书管理系统是图书馆的一个重要组成部分,它作为一种重要的信息处理系统,拥有着大量数据信息存储、吞吐量大等特点,是整个图书馆的信息处理中心,图书管理系统的不断创新,也在不断促进图书馆的信息化建设。图图书管理系统是高效、快速和方便的集成管理。它摒弃了通常人们采用纸媒介人工方式管理图书信息的方式,传统的管理方式有许多缺点,效率低、保密性差。另外随着时间延续,将产生大量的图书馆信息、图书信息,这些都为图书借阅、检索、查询带来了许多困难。
图书馆的图书管理工作非常复杂,有大量的书籍信息,种类繁多,往往工作量较大,每一天都会返回大量的数据,这使图书馆管理工作变得非常具有挑战性。特别是近年来,电子图书的出现,多媒体图书馆的出现,这些都为图书管理工作带来了新的问题。如何更好地适应现代图书管理工作的需求,设计了一套具有较强的适应能力和可塑性的图书管理系统,已经成为一个具有非常高优先级的开发工作。本文将采用面向对象的方法对图书管理系统的开发和设计工作,为图书馆构建一个高效、快速、个性化的图书管理系统,为广大借阅者提供良好的服务,为管理人员提高工作效率。
图书馆图书管理系统可以极大地提高图书馆图书管理的效率,可以精确查询预订库存状态和存储区域,这将惠及广大借阅者,更快更好地满足了他们的需求,为现代图书馆的建设提供了软件支持。
1.2 目前图书管理系统存在的问题
随着现在国家的发展,为了促进学生们的学习,国家开放了更多图书馆,随着图书馆的增多,书籍的藏书种类也越来越多,还分为不同的类别,因此人们不难快速地进行分类,图书馆中借书还书的现象也越来越多,因此借书、还书会超过借出书籍超期、丢失书籍,工作量很大,因此经常会出现这种错误,图书馆的书籍也会随时进行更新,人工更新起来的速度也越来越慢,藏书的知识也得不到良好地控制。
1.3本文研究意义
随着计算机的广泛应用,国家也现在逐渐走进现代化溅射国家,图书馆和一些书店在正常运行中出现了不少问题,需要对书籍资源、借书信息、还书信息进行管理以及管理员可以快速发布新的书籍信息,为了提供图书馆中的这些要求,提高工作效率,本文根据图书馆的不足现象进行了分析,现设计其相应的系统
图书管理系统的对象主要是管理员和个人信息,主要功能是实现图书馆借阅和管理员管理,除了这两个功能,还创建了统计查询、个人登录信息、修改密码等功能
1.4本文研究章节结构
本论文主要分为七个章节对课题进行论述,每个章节的内容如下所示:
- 绪论。主要讲述了对于当前图书管理系统的调研情况,介绍了此课题提出的背景和研究的意义,讲述了国内外的发展情况,最后介绍了论文的主要研究工作和组织结构进行简单的介绍。
- 相关介绍。介绍了此图书管理系统开发时所用的框架Django和新型技术ORM作详细介绍。
- 需求分析。本章首先从需求确定原则和需求协商与验证两个方面对确定图书管理系统的理论做了详细的介绍;接着从系统的总体需求目标和系统功能需求两个方面对系统的需求做了概述。
- 系统设计。本章基于第三章的需求对图书管理系统作了全面的设计,首先设计了系统的总体架构,然后对图书管理系统的功能设计重点的作了介绍,接着对该套系统的数据库和ORM模型作了设计,最后系统的安全性作了分析。系统实现。按照系统的需求和设计说明书,实现了图书管理系统所有的功能模块。
- 系统测试。介绍了测试信息管理系统相关的理论知识;接着对图书管理系统从功能进行测试,保证系统的可用性、易用性和安全性。
- 总结。对论文的主要工作进行了总结,分析本课题开发图书管理系统实现的功能和优势
第2章 相关技术
2.1 Django框架介绍
Django框架是基于python语言开源web应用框架,Django是从真实世界的应用中成长起来的,它是由堪萨斯州Lawrence城市中的一个网络开发小组编写的,Django的问世,大大方便了新闻网站信息的快速建设,方便了信息的传播。

中间件是Django框架的精髓,在该框架下每次请求处理和返回都由中间件来负责完成,中间件就是处理HTTP的request和respons,Middleware都需要"project/settings.py"MIDDLEWARE_CLASSES的定义。处理HTTP的request和response的主要因素。
2.2 ORM技术概述
对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。ORM框架的架构总览图如2.2所示。

2.3本章小结
本章了解了django框架和ORM映射的功能,知道django和ORM的关系,下面就对我们制作管理系统的逻辑思维更加明确,更容易做出管理系统。
第3章 需求分析及概要设计
3.1需求确定原则
根据系统分析的结果,我想到由于现在科技发达,图书馆里的工作人员多而且还不能准确的对书籍进行整理导致常常丢失书籍还会出现借书不还的现象,为了整改这几个方面的要求,就想到制作图书管理系统能代替人工管理图书信息,所以就想做出图书管理系统来管理图书,既能保证书籍得到合理管理,又能减少人工管理。
3.2、总体需求目标分析
目标就是实现系统代替人工管理书籍,既能准确管理图书还可以看到借阅功能,大大降低人工成本,还能更好管理图书。
3.3系统功能结构图及需求分析
根据系统和市场分析主要是管理员更好管理图书,所以必须有添加书籍功能,增删改查功能,账号密码修改功能,退出登录功能等,并且这些数据可以通过数据库查询出来,可以准确完成管理图书工作,图书管理系统对管理员和用户的功能如图下2.3显示。

3.3.1、登录管理模块及需求分析
1.页面出现注册、登录信息,登录成功后,显示用户的个人信息。
2.点击退出登录,可重新更换用户和管理登录。
3.3.2、用户管理模块需求分析
1.用户登录成功后,可以查看个人信息,可退出登录
2.用户可以通过搜索查询功能,找到自己喜欢的书籍,进行借阅。
3.3.3、图书信息管理模块需求分析
1.登录成功后,用户和管理账号都能看到所有图书的信息,管理员可以对书籍信息进行增删改查。
2.管理员可以随时添加新书,随时上架。
3.3.4、图书借阅信息管理模块需求分析
1.用户可以通过搜索查询功能找到自己喜欢的书籍,进行借阅。
2.用户可以查看自己借阅图书信息,里面设置了还书信息。
3.3.5 信息统计模块需求分析
本文主要为了四个模块,查询模块,图书信息管理、增加图书信息,借阅模块,以及还有一些辅助功能,这些功能都能为图书馆管理系统带来好的方面,可以合理管理图书。
3.4本章小结
从图书管理系统分析来说,计算机对图书进行管理,不仅为图书的管理注入了新的生机,而且在运营过程中节省了大量的人力、物力、财力和时间,可以提高图书管理的效率。随着计算机技术的发展,以及计算机在各个企事业单位中应用的普及,计算机强大的功能已为人们深刻认识。它在当今高速发展的信息时代占据着不可缺少的地位,作为计算机应用软件的一部分,使用计算机对图书馆进行综合管理已经远远超过手工管理的效率。
第四章 系统详细设计
4.1系统架构设计
Django的本质
Django是一个开放源代码的Web应用框架,由Python写成。采用了
MTV的框架模式,即模型M,视图V和模版T。简单来说,就是Django给我们提供了一个非常完善的Web框架,是目前Python搭建项目最好用的框架。我们只需要对其中的文件进行修改与增加内容,就能轻松实现请求与响应的基本功能,最终渲染出对应的网页。
MVC模式
MVC就是把web应用分为模型(M),控制器©,视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器©接受用户的输入调用模型和视图完成用户的请求。
MTV模式
MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
另外还有一个路由分发器,即url分发器,它能将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。
URL(路由分发):负责分发链接并绑定对应函数的。
Django原理图

4.2 系统功能模块设计
主要模块中有django、pymysql,通过django原理和数据库中的数据实现功能的页面。
4.2.1系统登录模块设计
运用了html+js+css的前端页面设计,django.template.Template 是Django提供的模板类,调用模板类的构造函数Template(),可以快速创建模板对象。调用模板对象的render()方法,可将模板渲染成HTML代码配置访问视图Libray的URL,TemplateResponse使用模板文件生成HttpResponse响应。
4.2.2图书信息管理模块设计
管理模块是当http发送请求,根据url指定函数,再去读取数据库中的数据,因为图书所有信息是存放数据库中的,再到sql请求,将数据传送到相对应的网页中,最后生成页面。
4.2.3 系统借阅管理模块设计
本模块的主要功能是为了用户没有在一定时间内看完某本图书时,可以继续使用,用户可以通过查询个人借阅书籍,借阅书籍在查找图书的最右边操作下的按钮,还可以借阅其他书籍,还可以在借阅读书观看完,及时点击还书。
4.2.4 系统信息查询模块设计
系统信息查询模块,都是用来查询图书信息,个人信息登录页面就会显示出来,管理可以通过自己的管理书籍页面在哪里设置增删改查的功能,可以让图书得到更好的管理。
4.2.6 系统统计模块设计
系统统计模块是管理员可以统计所有的图书管理,这个统计模块是经过数据库图书信息的录入,结合django和前端网页,经过数据库信息的传输,渲染出前端页面。
4.3 数据库结构设计
本系统采用Mysql作为访问数据库的服务器,用它来对数据进行存储,在数据库应用系统的开发过程中,数据库的结构设计是指数据库中各个表的设计,包括系统中的信息保存在哪个数据库中以及各个表之前的关系,数据库的好坏直接对应用系统实现的效果产生影响,好的数据库结构设计会减少数据库的存储,数据库的完整性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现。
4.3.1 系统实体关系图

4.3.2 数据表及对应PYTHON类设计
综合实际来说,图书管理系统library的数据库主要包含如图所示的6张数据表。
Python类的设计
django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作。
-
对象关系映射
-
把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成
-
django实现了ORM框架,在项目中与数据库之间产生桥梁作用
-
django数据库定义模型的步骤如下:
-
python manage.py makemigrations
-
python mange.py migrate
-
在应用models.py中编写模型类,继承models.Model类
-
在模型类中,定义属性,生成对应的数据库表字段
-
属性名 = models.字段类型
-
字段类型 --- 一旦修改类型就需要重新迁移
在pycharm终端中执行数据库建立迁移,迁移后会出现一个.py的文件,我们可以通过django自带的admin后台来看见我们所创建的数据模型类。在pycharm终端中输入命令python manage.py createsuperuser。
再次输入用户名和密码

然后开启django项目输入 http://127.0.0.1 :8000/admin/,进去就能看见自己创建的模型类啦。
- 系统具体实现
5.1、项目基础框架搭建
Django项目搭建:
- 已有Python、PyCharm后,创建新项目(自定目录,建议启用VirtualEnv)新环境---解释器

2可在命令行pip install安装Django包,也可以在Pycharm的Python解释器下"+"安装

3注意:
- 命令窗的virtualEnv, activate, deactivate
- PyCharm的Python解释器、运行工作环境PYTHONPATH
- PyCharm工具窗终端(Cmd或Powershell)的配合

5.1.1 创建应用项目
1、安装好Django后,创建/开启django项目(project,注意文件夹结构)
[PyCharm社区版需结合命令窗] django-admin startprojec tlibrary

2、在Django项目上创建应用(app):
进入Django项目(网站)的根路径, python manage.py startapp Myapp

3、在网站根目录下启动网站(开发服务器)运行:
python manage.py runserver

5.2 系统功能模块实现
系统功能模块分为系统登录模块、用户管理模块界面、图书信息管理模块界面、借阅信息管理模块界、图书查询模块界面五大模块。
5.2.1系统登录模块
在项目根目录下新建一个文件夹static用于存放前端模板静态资源,同时将相关前端资源导入文件夹。
在项目根目录下新建一个文件夹templates用于存放前端网页。创建完成后的目录如下图:

接着我们需要修改DJango配置识别我们的静态资源和模板网页地址.
打开setting.py 文件,找到TEMPLATES配置项修改为如下用于识别模板网页地址:

接着找到 STATIC_URL ,在下方添加 STATICFILES_DIRS 如下 用于识别静态资源地址:

5.2.2、用户管理模块界面实现
登录页面主要运用前端技术html+css+实习学会js的技术进行页面的手机号密码登录,前端页面主要包括用户注册、登录、管理注册,管理登录,用户登录页面通过每个学院学生进行注册,管理登录通过每个区来登录,更容易管理登录,双方登录都要用手机号和密码登录,登录页面如下图所示:
5.2.3图书信息管理模块界面实现
这个页面首先就是django连接数据库中的数据,再加上前端网页的渲染,首先让他连接数据库通过前端网页和urls实现数据交互的,只有图书管理员才能管理图书信息,用户可以通过图书信息进行借阅,功能如下所示:

5.2.4借阅信息管理模块界面实现
用户登录按钮后,可以在查找书籍里面最右边有个按钮,点击就是借阅成功,借阅通过后,可以在借书记录哪里查看是否借出了这本书籍,图书信息是存储在数据库中的,实现借阅功能是前端页面设置了按钮,用js'代码实现,经过url的响应,最后渲染前端页面实现这个功能,功能如下所示:


5.2.5图书查询模块界面实现
图书查询模块设置了用户和管理员都能通过自己的搜素找到相对应的书籍,这个功能实现,是先创建图书信息的数据库,然后连接上去,最后通过前端页面渲染生成这功能,功能如下所示:


5.3本章小结
通过系统各个模块的实现,我们可以了解到每个功能模块所用的方法,也可以每个功能的作用,也可以知道这些模块为接下来的功能实现具有重大意义。
- 系统测试
6.1系统测试方法介绍
该系统在本地服务器上运行和调试,鉴于对系统的内部结构和处理算法的完全了解以及对系统功能的全面掌握对系统进行了测试。
模块功能测试使用正确数据、错误数据、边界数据进行测试,保证平台的正常运行。
6.2系统功能测试
登录录页面的正常登录,使用正确的账号密码进行登录

使用错误的账号密码登录,会出现密码错误的提示。
2.图书查询功能,输入正确的书籍信息进行查询。

图书查询功能输入错误的书籍信息,他会显示未找到该本书。

3.借阅读书按钮的检测,用户在查询功能最右边有个借阅功能,点击借阅就能借到该图书,同时也可以到借阅图书的信息里看。


4.还书记录的按钮,在查看借阅书籍的最右边,也是操作下面有个按钮,点击他就能显示还书成功,点击确定然后书籍就被还回去啦。

5.修改密码,输入最前面的登录页面的密码,再重新设置自己喜欢的密码,两次密码要一致就会显示修改成功,如果两次密码不一致就会导致新密码不一致,请重新输入。


7.测试图书管理图书的增删改查功能,可以更容易管理图书,也能有更准确的数字,可以减少工作量,增删改查也是在图书管理的查找书籍里面最右边的四个按钮,从左到右分别是增删改查功能。

增加图书就是把库存量增加为1

8.修改就是修改功能,可以通过国际标准书号、书本类型、书名、价格、作者、馆藏书、出版社、可借数、版本、书库来修改其中的内容,然后点击确认,会显示修改成功,则相对应的字段就会被修改。



9.清理书籍是要把哪些图书库存没有的可以及时清理走,方便更好管理,清理时点击确定,改书籍就会被清理掉。


10.采购书籍就是图书馆购买的图书,通过国际标准书号、书本类型、书名、价格、作者、馆藏书、出版社、可借数、版本、书库来上架图书,为了让书籍得到更好的上架,也能及时更好管理书籍点击确认后,会显示添加新书籍成功,可以到图书查询找到上架的图书。

6.3系统测试结果
通过编写图书销售管理系统的测试用例,已经检测完毕用户登录模块、用户注册模块、图书分类展示模块、图书添加模块功能测试, 这4大模块的功能都很正常, 通过这4大模块为图书销售管理系统的后 期推广运营提供了强力的技术支撑。
6.4 图书管理系统的实现全过程
一.创建项目
1.先创建一个项目,输入django-admin startprojec tlibrary,然后再进入library创造一个app项目,输入 python manage.py startapp Myapp创造一个app项目,然后在setting里面注册应用。

2.连接数据库,连接一个名叫library的数据库,输入密码和端口号。
在init.py中添加pymysql.install_as_MySQLdb()
二.编写模型
1.在models中添加book模型

定要注册模型
- 数据迁移分别使用python manage.py makemigrations、python manage.py migrate进行数据迁移,这里是因为之前迁移过了,所以会报这样,下面数据表是迁移得到的。


3.配置路由

4配置视图函数

三.静态资源配置
- 创造static的静态文件
引入library. C ss和js还有img文件

- 在temolates中创建html文件
login.html

在template文件夹中我又创建了manager和student的文件夹这两个文件分别是管理和学生用户的html文件。
Manager的add_new_book.html内容


三.展示效果
用户效果:


管理员效果:


6.5 本章小结
测试过程中按照严格的方式进行测试,没有发现图书管理系统存在的问题,各个功能都已实现,实现这些功能,经历了2周的时间,保证了图书管理系统完成自己需要的需求,希望图书管理系统能有效地管理图书,使图书数量更准确,能减少人工管理,大大提高了系统化。
第7章.总结
7.1工作总结
经过两周的设计和开发,我对图书管理系统基本开发完毕,其功能能够符合应用需求,对于研发中出现的数据问题也通过百度解决了,通过这次设计能体会到自己技术的提升,还可以巩固上课学过的知识和学习新的语言并掌握,我们实习是做软件开发,刚开始我们在课程上只学过前端和js,我们软件开发只能用到这几个,后面经过几个月的实习,现在对js代码挺熟练应用起来,这个设计是经过自己在学校用心学的知识积累起来做成的一个毕业设计。
刚开发时,我遇到js上的许多问题,后面我专门用了两个月对js的学习,以及和比较厉害的同学一起讨论,最后能够解决,这个设计是完完整整1的开发,在上半学期,django的开发老师在课上只教一些简单的开发,我就从那时候慢慢了解它的原理,知道django原理的开发,开发一个系统起来根本不难,但是加上js的系统开发就比较难啦,这个系统html+css+js+django还有数据库开发出来的,这个设计可以给自己提供一个锻炼、提高的计划。
完成图书管理系统的各个功能和结构的设计,还有各种模型图的建立,把这些结合起来,为以后接手新的项目,处理打下基础。



最后祝大家学计算机的都能成功上岸