基于python+vue文学名著分享系统的设计与实现flask-django-nodejs-php

随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的文学名著分享系统。当前的信息管理存在工作效率低,工作繁杂等问题,基于信息化的文学名著分享目前还没有完善的系统机制。
在此基础上,结合现有文学名著分享体系的特点,运用新技术,构建了以python为基础的文学名著分享信息化管理体系。首先,以需求为依据,根据需求分析结果进行了系统的设计,并将其划分为管理员和用户二种角色和多个主要模块:用户、书籍分类、书籍信息、图书分享等。使用目前市场主流的技术django框架进行项目构建,基于B/S架构模式,使用python开发语言和MySQL数据库对系统进行高内聚低耦合的设计,最终完成了文学名著分享系统的实现。
基于django框架的文学名著分享系统为当前传统管理模式提供了一个高效、便捷、信息化的解决方案,这为后期文学名著分享系统的优化提供了新的方向。
语言:Python
框架:django/flask
软件版本:python3.7.7
数据库:mysql 
数据库工具:Navicat
前端框架:vue.js
通过比较两个不同因素的框架,可以看出Flask和Django不能被标记为单一功能中的最佳框架。当Django在快速发展的大型项目中看起来更好并且提供更多功能时,Flask似乎更容易上手。这两个框架对于开发Web应用程序都非常有用,应根据当前的需求和项目的规模来选择它们。
最新python的web框架django/flask都可以开发.基于B/S模式,前端技术:nodejs+vue+Elementui+html+css
,前后端分离就是将一个单体应用拆分成两个独立的应用:前端应用和后端应用,以JSON格式进行数据交互.充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护等特点
目 录
摘 要 I
Abstract II
1绪 论 1
1.1课题背景 1
1.2课题研究的意义 1
1.3研究现状 2
1.4研究方法 3
1.5论文组织结构 4
2开发关键技术 5
2.1 django框架 5
2.2 python语言介绍 7
2.3 B/S架构 7
2.4 MySQL数据库 7
3系统分析 8
3.1 可行性分析 8
3.1.1 技术可行性 8
3.1.2 操作可行性 8
3.1.3 经济可行性 8
3.1.4 法律可行性 8
3.2系统流程设计 9
3.2.1 系统开发流程 9
3.2.2 用户登录流程 9
3.2.3 系统操作流程 10
3.2.4 添加信息流程 11
3.2.5 修改信息流程 11
3.2.6 删除信息流程 12
3.3系统用例分析 12
3.3.1 用户用例图 12
3.3.2 管理员用例图 12
4 系统设计 14
4.1 系统概述 14
4.2 系统结构设计 14
4.3 数据库设计 15
4.3.1 数据库设计原则 15
4.3.2 数据库实体 16
4.3.3 数据库表设计 18
5界面设计与功能实现 22
5.1 前台系统功能模块的实现 22
5.2 后台管理员功能模块的实现 27
5.3 后台用户功能模块的实现 27
6系统测试 28
6.1系统测试的方法 28
6.2测试用例 28
6.3测试分析 30
结 论 31
参考文献 32
致 谢 33

1绪 论
1.1课题背景
随着计算机技术和网络技术的不断发展,互联网成为一种新兴的行业。带动了各行相关产业链的发展[1]。
信息的传递在管理系统中是一个十分关键的环节。及时、准确的信息传输可以帮助各行业及时发现、处理和解决问题。使信息管理系统达到一个良性的循环。同时文学名著分享系统要想实现长久的发展,就必须要利用现代的信息技术和网络通讯技术,来构建一个信息化、协同化管理的文学名著分享体系[2]。
传统的管理方式必须进行信息化改造,这是一个不可避免的过程。这样既可以使各行业内部资源得到合理的配置,又可以通过信息化管理平台,通过这个平台,管理员和用户可以共享每个环节和相关资源。因此,研究和开发一个基于django框架的信息化、一体化的文学名著分享系统具有重要的意义。
1.2课题研究的意义
现代文学名著分享系统综合了共享信息、电子化、智能化等多种技术,对文学名著分享系统的多个流程了实现整合。信息化的文学名著分享系统是由多个分布式子系统组成的,各分布式子系统既可以完全独立运作,又有一定的联系。只有提高文学名著分享系统的各环节、各子系统的信息化水平,才能提高整个文学名著分享系统的运行效率[3]。
使用网络化智能分析技术后,可以实时的获取书籍信息或用户需求等数据,对海量的数据进行过滤和分析,就能得到有价值的信息。这样,管理员和用户之间可以有更好的交互,同时,在一定条件下,可以实现部分数据的共享,从而提升服务质量和用户体验[4]。
1.3研究现状
在线上管理领域里,我国相比国外一些发达国家而言起步较晚。像美国、欧洲等国目前在该领域已经取得一定的成就,基本上建立起了不同层次的信息管理系统体系。
传统使用纸质文件的缺点有:
1、保存困难,易于丢失。纸质的材料经过长时间的存储或频繁的转移、翻阅,非常容易造成字迹变得模糊、材料发生意外破损或者丢失。
2、查询分析不方便。每个行业每季度或者年度都需要进行资料数据的整理、分析和总结,纸质的材料查询和分析都非常的耗时费力,而利用网络信息技术,可以很好的解决这些问题[5]。
3、对环境不友好,使用纸质文件不环保,产生的废弃纸张很多时候得不到及时的回收再利用,大大的浪费了自然资源。
这些年我国经济和科技蓬勃发展,诞生了很多新兴的产业,很多行业的经营模式向信息化和网络化方向发展,这给传统行业带来了巨大的冲击,也推动了我国现代许多行业进入快速发展的新阶段[6]。
由于现代科学技术的快速发展,信息技术、网络技术在线上管理领域得到了广泛的应用。在西方很多国家,很早之前就已经有了非常成熟的线上管理理论并逐渐形成完整的文学名著分享系统体系,美国与日本的线上管理已处于全球领先地位。欧洲线上管理虽然起步较晚,但是由于各国*和相关企业的大力支持和关注,同时吸收先进的实践经验,最终本行业得到快速发展。
2.3 B/S架构
B/S(Browser/Server,浏览器/服务器)模式,是一种架构模式,属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,服务器上集中了系统功能的最关键部分。
B/S架构的工作模式是浏览器发出请求后服务器进行相应的响应。Internet上文本、图片、动画等信息主要由Web服务器产生,而用户主要是通过浏览器访问这些信息。在Web服务器上下载程序时,如果在下载过程中遇到某些与数据库相关的指令,可以将这些指令交给数据库服务器来解释、进行执行。

2.4 MySQL数据库
MySQL是一种关系型数据库,它以表文件的形式在磁盘中进行存储,主要作用就是以表结构的方式存储数据信息,并且MySQL数据库提供对数据的管理功能,如数据备份,表关联等。
MySQL的存储引擎有:
1.MyISAM:节约空间,速度较快,但没有事务处理的机制。
2.InnoDB:安全性高,支持事务的处理,多表多用户操作,支持行级锁,是MySQL 5.5及以后版本的默认数据库引擎。

3系统分析
所谓系统分析,就是将自己对某一系统的构思以书面形式体现出来,并以此为基础,进行后续的软件设计和开发。在软件开发初期,人们对系统分析还不够重视,导致最终系统验收时,需要进行较大修改,这会耗费大量的人力和物力。造成这种现象的原因,是由于对用户或市场实际需求没有进行充分调研和详细的分析。这也是为什么近年来,关于系统分析的研究受到了越来越多的关注[9]。
3.1 可行性分析
文学名著分享系统主要目标是实现用户查询书籍信息等功能完成的整个收藏过程的信息化管理。在进行系统的设计和实现前,需要先对该系统进行相关的可行性分析,如从技术、操作、经济、法律等方面判断系统在现有条件下是不是能够真正实现的[10]。
 
3.1.2 操作可行性
文学名著分享系统旨在为用户提供一个简单方便快捷的文学名著分享系统。文学名著分享系统的界面简洁,操作方便,即使是不具备很强的网络技术知识的用户也可以轻松使用。在管理员管理模块中,各项内容的管理操作界面也都简洁易懂的,实际操作也十分的简单,能满足基本的信息管理系统需要。因此该系统具有可操作性。
3.1.3 经济可行性
本项目所有功能的开发都是由本人独立完成,而且开发中使用的所有技术及工具也都开源的,易于学习和掌握的,所有省去了请专家开发指导的大笔费用,本系统的开发对计算机的软硬件的要求较低,因此这个系统在经济方面是完全可行的[12]。
3.1.4 法律可行性
文学名著分享系统属于自己设计的管理系统,因为这个系统在数据管理方面以及软件方面都是应用自己开发的开源代码,不存在模仿或盗用其他人的软件问题,是非常合法的。
从上面给大家讲解的过程不难看出,文学名著分享系统是一个全面优质的系统,我们开发的这个程序也是存在合法和必然性的,而且在技术方面也是过硬的,还节约了成本,难度不大,很适合用户进行操作[13]。
3.2系统流程设计
3.2.1 系统开发流程
文学名著分享系统的设计和开发,首先要对用户的实际使用需求和具体情况进行细致的分析,分析出系统要完成的全部功能,然后再针对整个系统的工作流程和功能进行设计,力求每个模块都能够达到用户的要求,最后通过测试来解决问题,保证系统的稳定和正常的运转,本系统的开发流程如图3-1所示。
 1.4研究方法
本文所采用的研究方法有:
1.调查法。通过市场调研和线下问卷调查等方式进行准确和全面的材料信息搜集工作,并对材料进行分析。
2.类比法。了解国外和国内线上管理的现状,吸取和借鉴先进线上管理理论经验,并在系统设计中进行适当的应用。
3.理论和实践结合法。在开发技术、开发环境和数据库技术等方面,通过对系统用户的需求进行分析,最终确定出最优的解决方案[7]。
4.UML建模法。对系统进行分析、建模和实际运行调试,使系统功能得以实现。
1.5论文组织结构
1.绪论,介绍了课题的研究背景、本论文的研究意义和目标等。
2.开发环境,介绍了与本系统实现相关的技术和工具,包括常用的django框架、python语言、MySQL数据库等。
3.系统分析,主要是系统流程设计和系统用例设计及法律、经济等可行性分析。
4.系统设计,依照系统设计规范,绘制各个模块的流程图和用例图等。
5.界面设计与功能实现,主要是展示系统具体功能和系统界面开发结果[8]。
6.系统测试,对完成的系统功能进行白盒和黑盒测试,编写并列举了相关测试用例表。
4.3.3 数据库表设计
数据库的主要作用是储存和管理整个系统的数据。数据库中的数据在保证一定的独立性和安全性的前提下,也要有某种程度的共享,在一定条件范围内可以共享某些数据。必须保证数据库中每张表里存储的数据是安全的,如果没有经过身份认证,就无法查阅及使用。在进行数据库设计时,应根据具体情况,进行有针对性的数据库开发和设计。下面列举主要数据库表结构。
表4-1:书籍信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
shujibianhao varchar 200 书籍编号
shujimingcheng varchar 200 书籍名称
shujifenlei varchar 200 书籍分类
fengmian longtext 4294967295 封面
zuozhe varchar 200 作者
chubanshe varchar 200 出版社
chubanshijian date 出版时间
shujijianjie longtext 4294967295 书籍简介
clicktime datetime 最近点击时间
clicknum int 点击次数 0

表4-2:书籍分类
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
shujifenlei varchar 200 书籍分类

表4-3:公告资讯
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容

表4-4:图书分享评论表
字段名称 类型 长度 字段说明 主键 默认值
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-5:书籍信息评论表
字段名称 类型 长度 字段说明 主键 默认值
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-6:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
yonghuzhanghao varchar 200 用户账号
mima varchar 200 密码
yonghuxingming varchar 200 用户姓名
xingbie varchar 200 性别
lianxifangshi varchar 200 联系方式
touxiang longtext 4294967295 头像
zhuceshijian date 注册时间

表4-7:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

name varchar 100 配置参数名称
value varchar 100 配置参数值

表4-8:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP

表4-9:关于我们
字段名称 类型 长度 字段说明 主键 默认值
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-10:图书分享
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
shujimingcheng varchar 200 书籍名称
shujifenlei varchar 200 书籍分类
fengmian longtext 4294967295 封面
zuozhe varchar 200 作者
chubanshe varchar 200 出版社
zujiejiage float 租借价格/天
tianjiashijian date 添加时间
yonghuzhanghao varchar 200 用户账号
yonghuxingming varchar 200 用户姓名
fenxiangxiangqing longtext 4294967295 分享详情
zhuangtai varchar 200 状态
sfsh varchar 200 是否审核 待审核
shhf longtext 4294967295 审核回复
clicktime datetime 最近点击时间

表4-11:token表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

userid bigint 用户id
username varchar 100 用户名
tablename varchar 100 表名
role varchar 100 角色
token varchar 200 密码
addtime timestamp 新增时间 CURRENT_TIMESTAMP
expiratedtime timestamp 过期时间 CURRENT_TIMESTAMP

表4-12:关于我们
字段名称 类型 长度 字段说明 主键 默认值
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-13:收藏表
字段名称 类型 长度 字段说明 主键 默认值
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 备注

5界面设计与功能实现
5.1 前台系统功能模块的实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到文学名著分享系统的导航条显示首页、书籍信息、图书分享、公告资讯、后台管理。系统首页界面如图5-1所示:
 6系统测试
由于互联网和现代科学技术的发展,目前很多行业都尝试使用网络技术进行信息管理。一个系统软件的安全品质是要严格管控的,一定要做到最好,最大限度的减少系统运行问题,让更多的用户能够接受并使用它,从而获得更多的宣传和推广。因此,在完成系统开发后,必须对系统进行大量的单元测试和系统测试,以保证其稳定性和可用性,以及是否能够满足用户的要求[14]。
软件测试是软件开发过程中必不可少的一部分,它不仅包括代码结构检查,而且还必须按照规定的标准原则,系统地、严谨地验证和确认软件的各个方面和各种情况。系统测试的目的是通过实际生产运行环境,检验在完整的系统配置下各个功能模块是否达到设计说明书中的要求,及时发现问题,并交由开发人员进行修正,保证系统安全稳定的运行。
6.1系统测试的方法
软件测试的方法有很多,如白盒测试、黑盒测试等,下面将简单介绍一下这两种测试方法的区别。
黑盒测试主要测试整个功能模块,检验该功能是否正确、前后端接口调用有没有错误、输入输出的格式正确与否、连接MySQL进行增删改查操作数据是否错误等[15]。
白盒测试主要是通过语句覆盖、条件覆盖等测试方法对代码语句和逻辑进行检验。通过该方法可以找到黑盒测试无法覆盖的错误,使生成的测试用例能够很好的覆盖测试需求,达到及时发现问题并解决的测试目的。
对于文学名著分享系统来说,首先需要采用白盒测试检查代码的所有逻辑的准确性,同时也需要使用黑盒测试对系统整体功能的实现进行用户体验测试。
6.2测试用例
用户登录功能测试主要是验证用户登录时输入正确的信息后是否能够跳转至正确的页面,以及输入错误信息时是否能够识别并给出错误提示信息的功能。
用户注册功能测试主要是对添加的每一条注册信息进行合法性校验,校验通过后是否能够正确地插入数据库表中,并且该注册用户是否能正常使用。例如如用户注册填入的用户名已被注册,需要提示用户该用户名已存在;第一次和第二次输入的密码不一致,提示用户密码填写不一致,然后强制用户重新输入密码;还有一些用户会忽略或忘记输入一些带星号必须要填写的数据,这时如果点击提交按钮,系统要能够识别出来,并且给出提示,并且此提交操作不能成功等等。具体测试用例如表6-1所示。
表6-1 用户登录及注册测试用例表
序号 测试内容 测试方法 预期结果 测试结果
1 登录 1.用户输入个人账号及密码点击‘登录’。
2.账号输入错误。
3.密码输入错误。
4.账号及密码对应且输入正确。 1.登录成功,页面显示个人中心。
2.系统提示登录失败。
3.系统提示登录失败。
4.登陆成功,页面显示个人中心。 符合
2 注册 1.用户点击‘注册’。
2.填写的用户名已经存在。
3.密码和确认密码不一致。
4.任意一项必填为空。
5.联系电话格式错误。
6.填写的各项表单字段均正确。
1.页面显示注册表单信息。
2.系统提示用户名已存在。
3.系统提示密码输入错误。
4.系统提示必填项没有填写。
5.系统提示联系电话填写错误。
6.系统提示注册成功。 符合
6.3测试分析
经过对文学名著分享系统的测试后,证明该系统在技术实现层面是可行的,系统设计是合理的。而且经过对市场上文学名著分享系统现状的分析和用户需求调研后,设计的系统能够满足用户的需求。系统的测试结果显示各个功能都是符合设计要求的,可以安全稳定的运行,所以这是一个值得被推广和广泛使用的一款文学名著分享系统。

结 论
本文设计实现了一个基于django框架的文学名著分享系统, 系统开发基于B/S架构设计模式,使用python后端框架,MySQL为数据库。本系统主要分为多个功能模块:用户管理、书籍分类管理、书籍信息管理、图书分享管理、系统管理等功能。因开发时间和本人知识储备及能力等因素的限制,使得系统可能存在一定的缺陷,我们需要对系统进行反复地测试,改进不足之处,不断的进行更新迭代,使其能够拥有更大的市场。
致 谢
在本科的学习过程虽然是艰苦的,但我在学习的同时也交往了许多朋友,收获了同学真挚的友谊,大家相互鼓励、相互帮助,一起度过了难忘的大学生活。
在这里我要感谢我的导师,在学习的各个方面给予了我许多的指导和帮助。特别是在论文的设计和修改方面,导师一丝不苟的工作态度深深的影响了我,对我所提的问题耐心的讲解,帮我多次修改论文,找出论文中的问题,大量查阅资料,结合国内外现状分析完善设计,在辅导我完成论文上付出了很多,在此,表示深深的感谢。
在导师的指导下,自己掌握了许多相关的技术知识,并且在论文和毕业设计中运用,完成了本课题的设计与实现。在开发和实践中,我也有很多自己的心得体会。
最后,我要感谢学校的老师、实习单位的老师以及同学们,在我学习期间的关心帮助和支持,使我顺利地完成系统的开发和毕业论文的撰写,衷心地向你们说声谢谢。

上一篇:鸿蒙Harmony应用开发—ArkTS(@Builder装饰器:自定义构建函数)


下一篇:34 vue 项目默认暴露出去的 public 文件夹 和 CopyWebpackPlugin