django图书管理系统

摘  要

随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把图书管理与现在网络相结合,利用计算机搭建图书管理系统,实现图书管理的信息化。则对于进一步提高图书管理发展,丰富图书管理经验能起到不少的促进作用。

系统阐述的是使用图书管理系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体架构。利用这些技术结合实际需求开发了具有个人中心、学生管理、公告信息管理、图书馆管理、图书馆楼层管理、座位预约管理、取消预约管理、座位签到管理、图书类型管理、图书信息管理、热门图书管理、图书借阅管理、图书续借管理、图书挂失管理、图书归还管理、催还信息管理、罚金信息管理、留言板管理、图书论坛、系统管理等功能的系统,最后对系统进行相应的测试,测试系统有无存在问题以及测试用户权限来优化系统,最后系统达到预期目标。

关键字:图书;Python; django;MySql数据库

 

Abstract

With the development of computer technology, the application of computer system has been extended to every field of society, a large number of wide application based on the network to life has brought very convenient. So the library management and now the network combination, using the computer to build the library management system, to achieve the information of the library management. It can further improve the development of library management and enrich the experience of library management.

The system describes the design and implementation of the library management system, for Python, B/S structure, MySql more in-depth study and application. Mainly for the system design, description, implementation and analysis and testing aspects to show the development process. Development using django framework and MySql database technology to build the overall architecture of the system. Using these technologies combined with the actual needs of the development of a personal center, student management, announcement information management, library management, library floor management, seat reservation management, cancellation of appointment management, seat check-in management, book type management, book information management, popular book management, book borrowing management, book renewal management, book loss management, book return management, urge to return Information management, fine information management, message board management, book forum, system management and other functions of the system, and finally the corresponding test system, test whether there are problems in the system and test user rights to optimize the system, and finally the system to achieve the desired goal.

Key words: books; Python; django; MySql database

目    录

1  概    述. 5

1.1 研究背景. 5

1.2 研究意义. 5

1.3 研究内容. 5

2  关键技术介绍. 7

2.1 PYTHON语言简介. 7

2.2 MySql数据库. 7

2.3 DJANGO框架. 8

2.4 B/S架构. 9

3  系统分析. 10

3.1经济可行性. 10

3.2技术可行性. 10

3.3运行可行性. 10

3.3 系统用例分析. 10

3.4流程设计. 12

3.4.1程序流程图设计. 12

3.4.2添加信息流程图设计. 12

3.4.3删除信息流程图设计. 13

4  系统的设计. 14

4.1 系统总功能模块设计. 14

4.2 系统数据库设计. 14

4.2.1 数据库系统概要设计. 14

4.2.2 E-R模型结构设计. 15

4.3数据表设计. 17

5  系统的实现. 31

5.1系统登录实现. 31

5.2管理员模块实现. 31

6系统测试. 36

6.1系统测试的目的. 36

6.2软件测试过程. 36

6.3测试用例. 37

结论. 39

致谢. 40

参考文献. 41

1  概    述

1.1 研究背景

中国在两千年左右就已经对计算机这一块发展到相当的规模了,现在老百姓们越来越离不开计算机网络、互联网所带来的好处了,现如今各种格式的网站系统遍地开花,现在不同于以往的老旧的管理方式了,只有跟上时代的发展才能不会被淘汰掉,所以对于图书来说也是同样的,将传统的线下管理带到线上,能够大大提升管理效率,好处也有很多,首先整体的美化、提升了在新时代的背景之下新的样貌,更加朝气蓬勃。一个好的系统能够把传统的图书信息管理方式,带上一全新的方式,效率、可靠、安全稳定集合一身的系统,带来的体验是传统管理方式所没有办法实现的,信息的交流将达到顶峰,用户的沟通将会更加的便捷,有问题实时反馈提交,及时接收重要通知,将图书管理正规化、合理化、高效化。

1.2 研究意义

随着时代的发展,信息技术得到广泛的应用给人们和生活注入了充沛的活力。网络使人们生活和工作带来便利,可以更高效的处理人类获取信息中精细化、全面化的问题,从而提高了工作效率。从独特且和资源相对优势的管理带来了更好的发展机会,在经济、教育、科研等各大领域上的应用也将逐渐成熟化。这是线下传统管理方式无法涉及的,为此,我们要无畏艰辛,永无止步的努力探索,力求开发出更具实用且信息化的图书管理系统。综上,研究意义重大。

1.3 研究内容

整个的系统的开发运用Python技术, django框架,以及MySql数据库技术的大力支持下同步完成该系统的开发,实现了图书管理的信息化,使管理者在操作思路清晰且更加方便,用户也可以体验到更加优秀的图书管理,内容目标如下。

(1)减少后台管理人员的工作量,对学生的信息进行系统的管理;

(2)必须要方便快捷的查看搜索信息并管理信息;

(3) 用户是具有多样性的,所以界面要设置的简单明了,操作更要方便快捷。

(4)编写开发系统的技术文件。

(5)对系统进行了系统测试。

2  关键技术介绍

图书的管理系统设计过程中采用Python开发语言,B/S结构,采取 django框架,并以MySql为数据库进行开发。结合以上技术,对本系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。

2.1 PYTHON语言简介

Python是由荷兰数学和计算机研究学会的吉多•范罗苏姆于20世纪90年代设计的一款高级语言。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为许多领域脚本编写和快速开发应用的首选语言。Python相比与其他高级语言,开发代码量较小,代码风格简洁优雅,拥有丰富的第三方库。Python的代码风格导致其可读性好,便于维护人员阅读维护,程序更加健壮。Python能够轻松地调用其他语言编写的模块,因此也被成为“胶水语言”。

Python的应用场合非常广泛,在科研领域中,可以用Python训练人工智能模型,也可以对实验数据进行数据分析。在生活中,Python提供了很多优秀的、开源的Web开发框架,例如Django、Flask、Pyramid、Tornado等。知乎、豆瓣网、Youtube等知名应用都是由Python为基础进行开发的。相比于其他框架,Django有着更加丰富的插件,作为企业级框架也很好上手,适合本次开发。此系统是开发一个Web应用,采用Django框架,将在下一节进行具体介绍。本次开发选用的是Python3.6.4版本。

2.2 MySql数据库

MySql数据库具有轻便、稳定等特点,在系统的工程中对相关的数据操作,很好的保障数据的稳定,极大程度上减低了系统开发的时间。

MySql数据库支持多线程工作,能充分利用系统的资源,更具有效率且数据库连接也有对于的不同模式接口;MySql存储小、运行稳定并且对使用的要求不高。

利用MySql建立系统数据库,利于对系统的数据处理早期的整合,可以更好的发展后数据的扩展实际操作[3]。

Mysql数据库的特点如下:

(1)Mysql是相比于Oracle更轻量、更简洁便于使用,在服务部署方面相对复杂度低,更利于毕设系统的开发。

(2)支持多种操作系统包括AIX、FreeBSD、HP-UX、Linux和Mac OS、Novell‘s Netware、OpenBSD系统、OS/2卷、Solaris、Windows等。

(3)查询速度快。算法优化了查询语句,可靠地提高了搜索速度。

(4)Mysql可以使用Sql语言进行调用,学习成本较低。

(5)Mysql可支持互联网站数据共享也支持数据安全设置,防止数据泄露。

(6)高度非过程化。在访问数据库时,没有必要一步一步向计算机发送指令去完成任务,只需要用MySQL语句描述并且命令就可以了,数据库会自动完成全部工作。

2.3 DJANGO框架

Django被官方称之为“完美主义者框架”,只需要很少的代码就能更快的完成一个优秀的Web应用[4]。Django采用了MTV框架模式,此模式根据MVC进行改进形成了更适于Django的设计模式。M为模型(Model)、T为模板(Template)、V为视图(View)。下面介绍部分Django的核心与优点:

(1)对象关系映射(ORM,Object-Relation-Mapping):ORM的方法论有着三个核心原则:

① 简单:以最基本的形式构建数据。

② 传达性:数据库结构被任何人都能理解的语言文档化。

③ 精确性:基于数据模型创建正确标准化的结构。

用于Python之中即是以Python类形式定义数据模型,类中的每一个属性对应着数据库中的一列。引入ORM后,无需编写原生SQL语句,使用基于面向对象的思想去编写类、对象、调用方法等,ORM会将其映射成SQL语句通过pymysql执行。

(2)路由配置(URLConf):Django的URL设置更加灵活优雅,看似复杂难懂,但使用的都是简单的正则表达式,你可以随心所欲的创造优美的、简洁的、专业

的地址。

(3)模板(Template):模板可以理解为承载数据的工具,为了将数据从视图中分离出来,通过各种各样的标签来进行数据的传输。Django的模板融入了面向对象中继承的思想,提高了复用减少冗余代码。

(4)视图(View):视图就是views.py中的函数,也就是逻辑代码,为了将URL和视图关联起来,用到了上述的URLConfs,URLConfs将URL模式映射到视图中,每个视图有两件事是必须要做的:返回一个包含被请求页面的HttpResponse对象,或者抛出一个异常。

(5)后台管理系统(Django-Admin):Django提供的一个基于Web的管理工具。

Django-Admin来自django.contrib也就是Django的标准库,默认被配置好,只需要激活启用即可,它的优势在于可以快速对数据库的各个表进行增删改查,一行代码即可管理一张数据库表,相比于手动后台1个模型一般需要4个urls,4个视图函数和4个模板,可以说Django完成了一个程序编写的大部分重复工作,并且对于图书管理这种以管理工作为重系统来说,极度契合。

(6)应用(Application):当项目规模过大时,难免会产生目录过长,文件过多的问题,Django理念中的App可以将项目相对独立的进行开发,插拔的工作方式和独立性让开发者废弃的App即使删除也不会影响整体,是一种不可多得的理念。

因为本次使用的Python版本为3.6.4,低版本的Django不支持Python3,故此次使用的Django版本为3.2.12。

2.4 B/S架构

Browser/Server简称(B/S),即:浏览器/服务器架构模式;属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,在服务器上汇集了系统功能的最核心部分。

B/S架构模式,在服务器接收到浏览器发出请求后将进行对应的回应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web上下载程序时遇到某些和数据库相关的指令,可以将这些指令转接到数据库服务器来进行解释和执行。B/S架构工作流程图如2-1所示:

图2-1 B/S架构工作流程图

3  系统分析

为了系统的完整,必须要有可行性分析的,系统的可行性关系到生存问题,分析其意义可否利用本系统来弥补线下图书管理模式中的不足之处等,通过本系统来减少工作量,使管理者与学生的工作和管理效率更高。对此体现出更多的意义和价值,系统完成后,进行具体的实际分析看是否能够达到期望的要求,确定之后再开始系统的搭建开发工作。对于图书管理系统开发的搭建中,对相关技术、实际情况和操作等一系列方面进行可行性分析;

3.1经济可行性

本系统所用软件均为微软软件,开发周期短,因而可节约大量时间与资源,达到降低成本之功效。并且具有很好的安全性、可靠性以及可扩展性。同时发展该图书管理系统需要的智能计算机配置很低,即使网吧中被淘汰掉的配置不高的计算机也能满足需要,因此具有充分的可行性。

3.2技术可行性

本系统开发的程序需具有网络功能,从而可以不受地点限制。由于采用了B/S模式,降低了成本,提高了效率。本图书管理系统以Python, MYSQL数据库为设计工具,能够方便的学习与应用。所以将Python与MYSQL集成而研制的智能系统具有可行性和有效性。

3.3运行可行性

运行可行性也可以说是系统可用性的体现,图书管理系统本身具有运行可行性的特点,其界面的设计清晰、功能权限分配合理、操作方便。本论文设计的是图书管理系统,通过技术的结合提出一套切实可行的解决方案。不同的用户接入之后不需要经过特殊的训练就可以运行到对应功能模块中。

3.3 系统用例分析

图书管理系统综合网络空间开发设计要求。目的是将图书管理系统将传统管理方式转换为在网上管理,完成图书管理的方便快捷、安全性高、交易规范做了保障,目标明确。图书管理系统可以将功能划分为管理员功能和学生功能。

(1)、管理员关键功能包含个人中心、学生管理、公告信息管理、图书馆管理、图书馆楼层管理、座位预约管理、取消预约管理、座位签到管理、图书类型管理、图书信息管理、热门图书管理、图书借阅管理、图书续借管理、图书挂失管理、图书归还管理、催还信息管理、罚金信息管理、留言板管理、图书论坛、系统管理等进行管理。管理员用例如下:

图3-1 管理员用例图

3.4流程设计

3.4.1程序流程图设计

在本系统,非本系统的用户要想进行图书就要注册本系统,登录时需要填写相应的资料,如有使用者,则会显示使用者名称已经存在,请再次键入使用者名称的提示框,若使用者不存在,则填写密码、确认密码等资料,并由系统判定密码与确认密码相符,确认无误后,填写使用者所填写的资料,即可进行登记。而且,为了保证系统的安全,只有在登录了本系统以后,才能进行图书管理系统。该系统的工作流程见图3-2。

图3-2 程序流程图

3.4.2添加信息流程图设计

在添加信息的时候,会判断是哪类用户,并根据用户类型判断执行是否合法,合法者可以进行添加,不合法者则不能进行此操作[12]。管理员登录账号后可以对内容进行添加,拥有着最高的权限,其他用户权限次于管理员。添加信息流程图如图3-3所示:

图3-3系统添加流程图

3.4.3删除信息流程图设计

删除数据时与添加数据功能类似,删除数据具体流程如图3-4所示:

图3-4系统删除流程图

4  系统的设计

4.1 系统总功能模块设计

图书管理系统分两大部分,即管理员管理和学生管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用,管理员权限最大,其次的学生。管理员总体负责整体系统的运行维护,统筹协调。

系统整体模块设计:系统分为管理员和学生两大用户角色,系统管理员有最大的权限,整体功能结构展示如图4-1所示。

图4-1 系统整体功能结构图

4.2 系统数据库设计

4.2.1 数据库系统概要设计

从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求[5]。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行[6]。

4.2.2 E-R模型结构设计

E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。在系统中对一些主要的几个关键实体如下图。

(1) 热门图书实体属性图如下图4-2所示。

图4-2热门图书实体属性

(2) 图书信息实体属性图如下图4-3所示。

图4-3图书信息实体属性

(3) 图书借阅实体属性图如下图4-4所示。

图4-4图书借阅实体属性

(4) 座位预约实体属性图如下图4-5所示。

图4-5座位预约实体属性

(5) 公告信息实体属性图如下图4-6所示。

图4-6公告信息实体属性

数据表设计

系统创建数据库和表之间关联,期间花费了不少时间,尽力把表格完善,更好的呈现出来,让表更加明了,更加清晰。系统在MySql的可视化软件Navicat premium创建的数据表,简洁明了的设计让数据库的创建操作更加快捷,数据表的详细情况如下表所示。

表4-1罚金信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

fajinmingcheng

varchar

200

罚金名称

jine

float

金额

fajinyuanyin

varchar

200

罚金原因

fasongshijian

datetime

发送时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

ispay

varchar

200

是否支付

未支付

表4-2图书挂失

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jieshudanhao

varchar

200

借书单号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shuliang

int

数量

jieshushijian

date

借书时间

haishujiezhi

date

还书截止

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xueyuan

varchar

200

学院

xuehao

varchar

200

学号

guashiyuanyin

longtext

4294967295

挂失原因

guashishijian

datetime

挂失时间

表4-3图书馆评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-4催还信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

cuihaineirong

varchar

200

催还内容

cuihaishijian

datetime

催还时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

表4-5关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-6配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-7收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-8在线客服

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

adminid

bigint

管理员id

ask

longtext

4294967295

提问

reply

longtext

4294967295

回复

isreply

int

是否回复

表4-9热门图书

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tushubianhao

varchar

200

图书编号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

tupian

longtext

4294967295

图片

shuliang

int

数量

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shangjiariqi

date

上架日期

tushuxiangqing

longtext

4294967295

图书详情

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-10用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-11图书续借

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jieshudanhao

varchar

200

借书单号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shuliang

int

数量

jieshushijian

date

借书时间

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xueyuan

varchar

200

学院

xuehao

varchar

200

学号

xujietianshu

varchar

200

续借天数

shenqingliyou

longtext

4294967295

申请理由

shenqingriqi

date

申请日期

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-12新书资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-13图书信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tushubianhao

varchar

200

图书编号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

tupian

longtext

4294967295

图片

shuliang

int

数量

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shangjiariqi

date

上架日期

tushuxiangqing

longtext

4294967295

图书详情

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-14留言板

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

表4-15图书类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tushuleixing

varchar

200

图书类型

表4-16图书借阅

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jieshudanhao

varchar

200

借书单号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shuliang

int

数量

jieshushijian

date

借书时间

haishujiezhi

date

还书截止

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

xueyuan

varchar

200

学院

tijiaoshijian

datetime

提交时间

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-17图书论坛

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

表4-18图书归还

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jieshudanhao

varchar

200

借书单号

tushumingcheng

varchar

200

图书名称

tushuleixing

varchar

200

图书类型

zuozhe

varchar

200

作者

chubanshe

varchar

200

出版社

bianhao

varchar

200

ISBN编号

shuliang

int

数量

jieshushijian

date

借书时间

haishujiezhi

date

还书截止

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xueyuan

varchar

200

学院

xuehao

varchar

200

学号

tijiaoshijian

datetime

提交时间

guihairiqi

date

归还日期

guihaibeizhu

varchar

200

归还备注

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-19图书馆楼层

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

louceng

varchar

200

楼层

表4-20座位预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

shuguanmingcheng

varchar

200

书馆名称

shuguanbianhao

varchar

200

书馆编号

shuguanweizhi

varchar

200

书馆位置

zuoweishu

int

座位数

yuyueshijian

datetime

预约时间

yuyueyuanyin

longtext

4294967295

预约原因

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

xueyuan

varchar

200

学院

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-21图书馆

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shuguanbianhao

varchar

200

书馆编号

shuguanmingcheng

varchar

200

书馆名称

shuguanleixing

varchar

200

书馆类型

shuguanweizhi

varchar

200

书馆位置

louceng

varchar

200

楼层

fengmian

longtext

4294967295

封面

zuoweishu

int

座位数

weizhi

varchar

200

位置

keyuyueshijian

varchar

200

可预约时间

dengjishijian

datetime

登记时间

loucengjieshao

longtext

4294967295

楼层介绍

shuguanxiangqing

longtext

4294967295

书馆详情

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-22座位签到

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

shuguanmingcheng

varchar

200

书馆名称

shuguanbianhao

varchar

200

书馆编号

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

xueyuan

varchar

200

学院

qiandaoshijian

datetime

签到时间

qiandaobeizhu

varchar

200

签到备注

表4-23学生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

touxiang

longtext

4294967295

头像

zhanghao

varchar

200

账号

mima

varchar

200

密码

xingming

varchar

200

姓名

xueyuan

varchar

200

学院

xuehao

varchar

200

学号

nianling

int

年龄

xingbie

varchar

200

性别

shouji

varchar

200

手机

youxiang

varchar

200

邮箱

表4-24取消预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

shuguanmingcheng

varchar

200

书馆名称

shuguanbianhao

varchar

200

书馆编号

quxiaoshijian

datetime

取消时间

quxiaoyuanyin

longtext

4294967295

取消原因

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

xuehao

varchar

200

学号

xueyuan

varchar

200

学院

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-25公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

leixing

varchar

200

类型

jianjie

longtext

4294967295

简介

fabushijian

date

发布时间

fengmian

longtext

4294967295

封面

neirong

longtext

4294967295

内容

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

5  系统的实现

系统登录实现

 系统登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-1所示。                               

django图书管理系统_第1张图片

图5-1系统登录界面

5.2管理员模块实现

管理员进入主页面,主要功能包括对个人中心、学生管理、公告信息管理、图书馆管理、图书馆楼层管理、座位预约管理、取消预约管理、座位签到管理、图书类型管理、图书信息管理、热门图书管理、图书借阅管理、图书续借管理、图书挂失管理、图书归还管理、催还信息管理、罚金信息管理、留言板管理、图书论坛、系统管理等功能进行操作。管理员主页面如图5-2所示:

django图书管理系统_第2张图片

图5-2 管理员主界面

管理员点击学生管理。在学生页面输入账号、姓名、学院和学号进行查询、学生分布、新增或删除学生列表,并根据需要对学生详情信息进行详情、修改或删除操作;如图5-3所示:

django图书管理系统_第3张图片

图5-3学生管理界面

管理员点击图书馆管理。在图书馆页面输入书馆名称、书馆位置、选择书馆类型和楼层进行查询、书馆座位数、新增或删除图书馆列表,并根据需要对图书馆详情信息进行详情、修改、查看评论或删除操作;如图5-4所示:

django图书管理系统_第4张图片

图5-4图书馆管理界面

管理员点击图书信息管理。在图书信息页面输入图书名称、作者、出版社和选择图书类型进行查询、新增、图书数量、类型数量和删除图书信息列表,并根据需要对图书详情信息进行详情、修改或删除操作;如图5-5所示:

django图书管理系统_第5张图片

图5-5图书信息管理界面

管理员点击热门图书管理。在热门图书页面输入图书名称、作者、出版社和选择图书类型进行查询、新增、图书数量、类型数量和删除热门图书列表,并根据需要对热门图书详情信息进行详情、修改或删除操作;如图5-6所示:

django图书管理系统_第6张图片

图5-6热门图书管理界面

管理员点击催还信息管理。在催还信息页面输入标题、姓名和学号进行查询、新增和删除热门图书列表,并根据需要对热门图书详情信息进行详情、修改或删除操作;如图5-7所示:

django图书管理系统_第7张图片

图5-7催还信息管理界面

管理员点击罚金信息管理。在罚金信息页面输入罚金名称、发送时间和姓名进行查询、新增和删除罚金信息列表,并根据需要对罚金详情信息进行详情、修改或删除操作;如图5-8所示:

django图书管理系统_第8张图片

图5-8罚金信息管理界面

6系统测试

系统测试是检验软件产品是否满足预期需求,确保产品无缺陷的重要手段。系统测试侧重于评估系统是否满足指定的要求,并帮助检查整个系统的功能性需求。通过对系统功能的测试用例进行分析可以发现软件存在的问题以及需要改进之处。软件可靠性设计是一项系统性工程,涉及到多个学科领域,因此其难度较大。

系统将采用黑盒测试方法对功能模块进行测试。黑盒测试即功能测试,是通过检验系统的功能是否达到预期效果来测试网站[7],它可以与预期结果相对比,看是否与预期结果一致,通过观察程序能否正确的输出信息。以此判断程序是否成功运行。

6.1系统测试的目的

系统测试(System Testing)是为给客户提供测试产品或服务的质量信息而进行的检查。系统测试还可以提供客观和独立的系统评估,以使运营者能够了解和系统实施所面临的潜在问题。系统测试包括(软件的组件,系统组件)的执行,以评估系统属性。通常这些属性表明被测组件或系统满足系统预期开发需求,在各种预期的时间内,正确响应各种系统输入,同时可以满足分析设计时要求的程度。在预期的环境中运行,并达到用户期望的总体结果。经过一系列严格功能测试,以发现系统功能方面潜在的问题,保证系统的正常运行。

6.2软件测试过程

软件测试是软件设计的收尾阶段,它是贯穿整个设计过程的,是一个巨大的任务。软件测试需要对程序所有的部分进行测试。且对每个部分的测试都是不一样的,需要在进行测试之前将它们分为以下几个阶段:

(1)单元测试(模块测试[13])

是对软件的程序代码进行检查的测试。针对软件的最小单元部分。单元测试分为人工检测和动态检测。静态检测要保证程序算法的正确性,要规范程序的逻辑性、规范性、正确性等。这一步要尽可能检测可能出现的错误。动态检测要通过比较实际结果和原先预计结果进行比较分析,找出错误。

(2)集成测试

此测试[14]是建立在单元测试基础上的,对系统的各个功能模块所进行的测试。任何的软件设计都会有集成阶段,所以在软件测试过程中,集成测试是的必定部分。在集成测试的时候,由于是对各个模块之间进行测试,所以可能在测试的时候没有发现问题,但整体测试的时候会暴露出来。同时,在进行集成测试时要小心在模块连接时注意是否有数据丢失。还要注意虽然单个模块的错误可能很少,没有影响,但拼接起来可能就会对系统产生很大影响。

(3)系统测试

系统测试紧跟集成测试进行。系统测试将已通过集成测试的部分作为整个系统的一员。和电子设备的各个软件和硬件等一起,通过实际运行进行检测,在模拟的实际环境下检测是否有错误出现。系统测试需要与计划中的理想状况作比较,发现与预想中不一样的地方。通过设计者的分析后决定如何修改。在软件实际运行的过程中,会发生很多意想不到的错误,可能测试人员也没有办法在第一时间解决问题,所以,系统测试应尽可能在实际运行下进行测试,这样才能达到更好的测试目的。

(4)验收测试

验收测试是系统在设计完成发行前最后的测试,它需要了解用户的需求。并和他们一起完成测试,同时根据他们的需求进行针对性的修改,以成为可以更好同时满足两者需求的软件。

6.3测试用例

登录功能是用户进入系统的校验窗口,其中需要填写的信息包括用户账号和用户密码,下面将根据此功能设计具体测试用例来验证登录功能的实现与否。具体测试用例见表6-1。

表6-1 登录功能测试用例

用例序号

用例描述

测试步骤

期望输出

测试结果

Test_01

页面展示

浏览器输入登录地址

进入登录页面

成功

Test_02

账号非空检验

账号为空,点击“登录”按钮

提示“用户账号必须输入”

成功

Test_03

账号存在性检验

输入不存在的账号

提示“输入的账号不存在”

成功

Test_04

密码非空检验

输入正确的账号,密码为空

提示“用户密码必须输入”

成功

Test_05

密码正确性检验

输入正确的账号和不正确的密码

提示“输入的密码错误”

成功

Test_06

登录成功检验

输入正确的账号和密码

登录成功,进入首页

成功

结论

系统阐述的是使用图书管理系统的设计与开发,在此系统的开发过程中应用到PythonMySql技术和面向接口编程。在系统的开发中应用B/S结构设计开发实现,让系统之间逻辑分层清晰明确使得系统更加的合理可靠,更加坚固的保证了项目的开发健壮性和准确性,更好的服务应用于高校。

这个系统的开发使我能够结合我以前的知识集成和改进它们。毕设就是检验我们对所学内容运用程度的时刻,对所学内容运用情况进行巩固与提高。本系统检验了自己的IT知识,同时也检验了自己运用相关知识去解决实际问题,使自己得到了一个锻炼与提升编程技能的机会。在设计上我遇到了很多困难,主要原因是我所拥有的知识不是很扎实,所以只靠几本书里的知识是远远不够的!自己经过实践取得了一些实践经验。知识不在于理解,必须学会运用,并且使之反映到实际生活中去,才是学知识的根本目的。面对困难,我学着怎样去处理,怎样去发现并分析有关的资料。我参加过一个小型公司的毕业设计,是一个典型的以学生为中心的企业项目。在这个团队里,每个人都有自己独立工作的空间,他们之间互相协作。团队意识很重要。虽然碰到很多难题,但是毕业项目经过不断的调试终于顺利完成。此次实践使我在实际应用中有所提高,同时极大地增强了大脑的工作能力,使我在探索中获得快乐,在成功中获得幸福,是我莫大的财富。后期也将继续对系统做出进一步的优化升级。

(1) 完善操作逻辑,让系统功能更加合理。

(2) 补充完善小功能的应用,使系统更加完整实用。

(3) 精简美化系统界面,提高系统观赏度。

  致谢

图书管理系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。同时,学校这次期间对我的帮助真的非常的大,身边的老师与同学都十分的热情,我有很多不懂的问题都是身边的老师与同学指导我的,可以说我的成长和进步是离不开学校的老师与同学,在这段期间我的成绩技术也是比以往进步的更加迅速。这四年的校园生活让我受益匪浅,终身难忘。

首先要感谢我的指导老师。她是一位发自内心希望我们这些学生成为优秀的人的老师。我还记得他在课间时间挨个问我们毕业后的想法,推荐我们课外书籍清单,鼓励我们学习课外知识的场景。他又很有责任感,在指导我们完成毕业设计和论文的同时,还给我们讲一些需要注意的事项,真正做到了教书育人。我每一回都因为实际操作中遇到苦难而向老师发消息求助时,老师总是秒回信息,事无巨细地解释清楚,而且同步发到同学群中,对于别的同学来说也是很大的帮助。或许对于一位老师来讲,学生有所成是他们的期望。那我希望这篇论文不是我的最后一篇论文。

其次感谢我的室友。虽然前几年的生活磕磕绊绊,小矛盾不断,但是最近一年我们都平静了下来。也很庆幸,我们在这段焦虑有压力的日子里几乎没有摩擦,而是相互鼓励,谢谢你们。

还有与我密不可分的亲人。即使他们当我因为压力而发脾气时,他们也只是告诉我:“要冷静”。在很多我认为自己撑不过去的时候,是他们的安慰与默默支持让我觉得自己可以。我希望我今后可以继续努力,去成为他们心中的那个我。

所以我会格外的珍惜这次不可多得的历练,在今后的工作生活的,我会继续努力,保持学习,保证自己思想的每日提升,学校带给我的东西很多很多,这些东西是我今后继续前行的养分,真的非常感谢,能够遇到这么多的人。

最后,我向母校老师们再次表示衷心的感谢和美好的祝福,感谢你们的辛勤栽培,祝老师们幸福健康!

参考文献

[1]韦力梅,苏兵.  Django框架下Python网站开发过程综述 [J]. 电脑与电信, 2019.

[2]李根.基于Django框架的生物信息网站建设[D] .大连海事大学,2018.

[3]夏亚丽,戴志涛. 基于Django的O2O家庭酒店商务平台 [J]. 软件, 2019.

[4]薛耀伟.基于Django框架管理界面自动生成模块的设计与实现[D].哈尔滨工业大学,2020.

[5]陈勇.基于Django框架的实时课堂投票系统设计与实现[D].大连理工大学,2021.

[6]周玥.基于Django框架的校园预约打印网站设计与实现[D].吉林大学,2019.

[7]周吉波,孟利民.        基于Django web框架的GPS车载管理系统网站的设计和实现[C].第二届亚太地区信息论学术会议论文集,2019.

[8]Li,Shenliang,Si,Zhanjun. Information publishing system based on the framework of Django [J].Lect. Notes Electr. Eng.2019.

[9]Tiwari, Usha,Mehfuz, Shabana,Sharma, Satyam,Pandey, Vinayak Triguna. Design of Python Based Lost and Found Website for College Campus [J]. Int. Conf. Power Electron., Control Autom., ICPECA – Proc,2019.

[10]Suryanto,WiwitIrna,ka,Theodosius Marwan. Web-based application for inverting one-dimensional magnetotelluric data using Python [J].Comput. Geosci, 2018.

你可能感兴趣的:(任务书,开题报告,论文,spring,boot,后端,java,开发语言,大数据)