在Hadoop技术框架下构建的二手交易环保校园淘系统旨在提供一个高效、可靠的在线平台,以促进校园内学生之间的物品再利用和资源共享。该系统采用python技术和mysql数据库。通过大数据处理能力优化资源分配,并鼓励可持续发展和环境保护。管理员拥有系统管理权限,包括对学生信息、物品分类、物品信息、心愿贴内容以及订单等进行维护。学生用户可以浏览物品信息,管理个人订单,以及更新个人信息。前台界面向所有用户提供直观的物品展示、公告信息、心愿贴交流和个人中心管理等功能。系统的实现基于Hadoop的强大存储和处理能力,确保了海量数据的有效管理和快速查询响应,同时也支持系统的可扩展性和高可用性。总体而言,该校园淘系统不仅提供了一个便捷的二手交易平台,而且通过其环保理念促进了校园的绿色生活方式。
Built under the framework of Hadoop technology, the second-hand trading environmental campus Shopping system aims to provide an efficient and reliable online platform to promote the reuse of items and resource sharing among students on campus. The system uses python technology and mysql database. Optimize resource allocation through big data processing capabilities and encourage sustainable development and environmental protection. The administrator has system management rights, including student information, item classification, item information, wish paste content and order maintenance. Student users can browse item information, manage personal orders, and update personal information. The front desk provides all users with intuitive object display, announcement information, wish post communication and personal center management. The implementation of the system is based on the powerful storage and processing capabilities of Hadoop, which ensures the effective management of massive data and fast query response, and also supports the scalability and high availability of the system. Overall, the campus online shopping system not only provides a convenient second-hand trading platform, but also promotes a green lifestyle on campus through its environmental protection concept.
Key words: second-hand transaction; Hadoop; mysql database;
第1章 绪 论
通过对现阶段二手交易环保校园淘管理方式的背景进行研究,阐述研究目的,以及对国内外现状进行研究,经过一系列研究来确定该系统研发的意义与价值,该部分为系统研发的起点。
1.1研究背景与意义
随着数字化时代的到来,大数据技术在各个领域中发挥着日益重要的作用。Hadoop作为一个开源的分布式存储与处理框架,因其高容错性、高扩展性和对大规模数据处理的能力而受到企业界和学术界的青睐。在这样的背景下,校园作为小型社会的缩影,其内部产生的数据量也日渐庞大,尤其是二手交易信息。传统的二手交易方式已无法满足现代校园的需求,且存在信息孤岛、资源浪费等问题。因此,利用Hadoop技术开发一个环保校园淘系统,不仅可以改善校园内部的二手物品流通效率,还能通过大数据分析进一步挖掘潜在的价值,优化资源配置。
本研究基于Hadoop技术设计和实现了一个二手交易环保校园淘系统,旨在解决传统模式下的信息不对称、交易效率低下以及资源利用率不高的问题。系统的实现不仅能够为学生提供一个安全、便捷的在线交易平台,而且通过数据的集中管理和智能分析,促进了物品的有效循环利用,减少了资源浪费。该系统还具有推广环保意识的社会意义,鼓励学生在日常生活中实践可持续发展理念。从长远来看,这一平台的成功运行将有助于构建绿色校园,推动校园文化的可持续发展,同时也为其他类似应用场景提供了宝贵的参考经验。
1.2国内外研究现状
在中国,随着校园数字化建设的深入发展,二手交易平台逐渐兴起,并成为大学生日常生活的一部分。国内高校内的二手交易多依托于微信、QQ群以及一些综合性的二手交易平台,如闲鱼、转转等。但这些平台并不专注于校园市场,且对环保和资源循环利用的意识相对薄弱。尽管部分高校尝试开发自己的在线交易平台,但大多数仅限于信息发布与交流,缺乏对大数据处理的关注,未能充分利用数据分析来优化资源配置。目前,国内对于结合Hadoop技术与校园二手交易系统的研究正在起步阶段,旨在通过高效的数据处理和智能分析,推动校园二手市场的规范化、智能化发展,同时提升学生的环保意识和参与度。
相较于中国,国外的二手交易市场更为成熟,特别是在环保意识的普及和资源循环利用方面。许多国家已经建立了完善的二手商品交易体系,包括eBay、Craigslist等知名平台,它们不仅提供在线交易功能,还注重用户社区的建设和维护。在高校层面,国外部分大学已经将可持续发展理念融入校园管理中,建立了专门的二手交易平台,如美国的eCampusStore或澳大利亚的StudentVIP,这些平台不仅支持学生之间的物品交换,还与校方合作进行教材循环使用。在技术应用方面,国外研究者较早开始探索如何将大数据和分布式计算技术应用于校园二手交易系统中,以处理大规模数据并提供个性化推荐、智能搜索等高级功能。这为国内相关研究提供了宝贵的经验和启示,指明了利用Hadoop等技术优化校园二手交易平台的可能方向。
1.3课题研究的主要内容
本二手交易环保校园淘系统开发选用Python作为后端开发语言,系统整体采用Django框架,后者带来了开箱即用的便利性,大大加快了开发速度。数据存储和操作则采用了MySQL数据库。前端开发部分,使用了HTML、CSS、JavaScript以及Vue.js这一流行的前端框架,使得界面设计和用户交互变得更加直观和便捷。在开发工具方面,选用了Eclipse以及Navicat,其中Eclipse作为一款成熟的开发工具,带来了丰富的功能和强大的支持,而Navicat作为数据库管理工具,提供了友好的用户界面和强大的SQL处理能力,从而大大提高了开发效率。系统主要为管理员和学生两个角色,主要功能包括系统首页、学生管理、物品分类管理、物品信息管理、心愿贴、系统管理、订单管理、用户信息等进行解析;
第2章 相关技术
本系统的数据库采用的是Mysql数据库,并且选择了PYTHON技术开发。在项目开发过程中,实现了系统功能模块的安全性、实用性、稳定性、易维护和页面简单等特点。
2.1 Python语言
Python是一种高级编程语言,以其简洁明了的语法和强大的功能而闻名。它被设计为易于阅读和编写,具有明确的视觉布局,很少使用符号,使其成为编程新手的理想选择。Python支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。它是一种解释型语言,意味着开发者可以在编码过程中即时测试代码,这大大提高了开发效率。Python的标准库非常庞大,提供了大量的模块和函数,用于处理各种任务,如文件操作、网络通信、系统运维等。Python有着庞大的开源社区,提供了大量的第三方库,可以用于数据分析、机器学习、网络爬虫等高级任务。总的来说,Python是一种功能强大、灵活且易于学习的编程语言,适用于从简单的脚本到复杂的应用程序的开发。
2.2 Django框架
Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。由Adrian Holovaty和Simon Willison于2005年创建,现今它已成为最受欢迎的Web框架之一。Django遵循MVC(模型-视图-控制器)模式,其中模型代表数据,视图负责呈现数据,控制器则处理用户输入。Django的一个核心理念是“约定优于配置”,意味着它为开发者提供了一套明确的规范,减少了不必要的配置工作。它自带一个管理界面,允许管理员轻松地对网站内容进行操作,还提供了一个强大的ORM(对象关系映射)系统,使得数据库操作更加直观和高效。此外,Django具有广泛的插件生态系统,提供了额外的功能,如用户认证、表单生成、缓存等。总的来说,Django以其强大的功能、简洁的设计和丰富的工具集,成为开发复杂网站和应用的理想选择。
2.3 MySQL数据库
MySQL数据库是一个流行的开源关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司最初开发,现在属于甲骨文公司。它基于结构化查询语言(SQL),这是一种用于管理关系数据库并进行各种数据库操作的编程语言。MySQL被广泛用于网站和在线应用程序中,因为它是一个高效、可靠且易于使用的解决方案。
作为一个关系型数据库,MySQL以表格的形式存储数据,这些表格可以相互关联,使得数据组织和查询变得灵活而强大。它支持一系列的数据库操作,包括数据的增删改查(CRUD)、事务处理和复杂的联合查询等。
MySQL数据库的特点包括其开源性质,这意味着它可以免费使用,并且拥有一个庞大的开发者社区,不断提供支持和改进。它的跨平台性使得可以在多种操作系统上运行,如Linux、Windows和macOS。此外,它还支持多种编程语言的接口,如Java、Python、PHP等,这使得开发者可以轻松地将MySQL集成到不同的应用程序中。
MySQL的设计旨在处理大规模数据,能够有效地管理从小型网站到大型企业级应用的数据需求。它的优化器可以帮助提高查询性能,而复制功能则允许数据在多个服务器之间进行同步,提高了数据的可用性和冗余性。
安全性也是MySQL的一个重要方面,它提供了多种安全机制,如用户访问控制、加密连接和数据备份工具,帮助保护数据不受未授权访问和其他潜在威胁的影响。
随着技术的发展,MySQL也在不断进化,推出了新版本以满足现代应用程序的需求。例如,MySQL Cluster提供了一个实时可扩展的内存计算数据库服务,适用于需要高速读写操作的场景。
总的来说,MySQL数据库因其灵活性、可靠性和易用性而成为全球许多企业和开发者的首选数据库解决方案之一。
2.4 VUE技术
Vue.js是一款轻量级的JavaScript框架,由前Google工程师尤雨溪在2014年发布。它在前端开发领域以其简洁的设计、高效的性能和易于上手的特性迅速获得了开发者的青睐。Vue的核心是一个响应式的数据绑定系统和一个组件系统。响应式数据绑定允许创建交互式的用户界面,数据模型仅是普通的JavaScript对象,当你修改它们时,视图会进行更新,使得状态管理变得直观而富有弹性。组件系统则使得开发者能够构建可复用的组件来构建应用程序,每个组件都有自己的视图逻辑和样式,这有助于提高代码的模块化和可维护性。Vue的API设计尽量保持简单直观,使得新手可以快速上手并投入生产,同时也为经验丰富的开发者提供了丰富的高级特性和灵活性。它不仅适用于构建小型项目,也能够应对复杂的大型应用程序。随着生态系统的不断壮大,Vue现在拥有大量的第三方库和工具,如Vuex(状态管理模式)、Vue Router(官方路由管理器)等,这些都极大地丰富了Vue的应用场景并提高了开发效率。总的来说,Vue.js是一个兼顾开发效率和运行性能的现代前端框架,它的设计理念和丰富的功能使其成为当今最受欢迎的JavaScript框架之一。
2.5 Hadoop介绍
Hadoop是一个由Apache基金会维护的开源大数据处理框架。它允许分布式处理大数据集,通过在计算机集群中并行处理数据来加快数据处理速度。Hadoop的核心设计哲学是将应用程序带到数据所在的位置,而不是将大量数据传输到应用程序所在的位置。它主要由两个组件组成:Hadoop Distributed File System(HDFS)和MapReduce。HDFS是一个高度可靠、高吞吐量的分布式文件系统,用于存储大规模数据。MapReduce则是一个编程模型,用于处理和生成大型数据集。Hadoop的强大之处在于其可扩展性和容错性,能够处理PB级别的数据,并在硬件故障时继续运行而不丢失数据。此外,Hadoop生态系统还包括其他工具,如Hive、Pig和HBase等,这些工具为数据分析、存储和处理提供了更多功能。总的来说,Hadoop是一个强大的大数据解决方案,适用于需要处理海量数据的企业和应用。
2.6系统运行环境
本系统是一个B/S版的应用程序,需要在服务器上部署MySQL数据库,其他的客户端通过运行程序既可。
(1)硬件平台:
CPU:酷睿i3 -3.0GHZ
运行内存:4G以上
电脑硬盘:128GB
(2)系统运行平台:
操作系统:Windows 7
开发工具:Eclipse
数据库:MySQL
2.7本章小结
本章节对物品网站进行了相关技术的分析与介绍,在结合技术的优点和适应性来选择数据库、服务器和开发环境,基于现有的情况,针对系统的各个模块确定系统的最优设计方案。
第3章 系统分析
本章主要从经济、技术和操作上对系统进行分析,由于本系统的特殊性,我们只需重点对技术和操作可行性进行分析,可以从一下几个方面进行分析。
3.1系统可行性分析
3.1.1经济可行性分析
由于开发本系统主要是为了测试自身的专业和设计能力,基本不考虑经济效益和后来的发展方向,只注重自身水平和设计能力的提高,并且对自身经济的要求也不高,只要有一台普通电脑就可以了,所以不需要考虑经济问题。
3.1.2技术可行性分析
系统主要采用PYTHON技术进行设计,系统基于B/S架构模式,有针对性地解决了架C/S构安装麻烦不便维护等一系列问题。因为本系统是采用MySQL数据库和B/S结构进行设计的一个小型网站,所以应用程序和数据库更是缺一不可,要想使用该程序,必须保证功能完整,操作简单且直观易懂的特点。数据库的建立,对整体的完整和数据安全两方面必须得到保证。我们可以采用PYTHON进行优化,加密函数,建立密库,这样可以有效的阻止在传输数据信息的过程中不易出现泄密状况,可以提高安全等级。在加密的同时我们可以开启PYTHON安全模式,针对一些被执行命令和可以被使用的函数进行限制来提高系统的安全性。在早期,我已将PYTHON的基本知识有了深度的理解,并对MySQL进行了解。对软件工程测试、UML等相关课程大概了解和学习过,通过掌握这些课程有了一定的系统开发、检验和辨别。采用PYTHON以及MySQL结合起来开发该系统,必定是可行的并且是高效的。
3.1.3操作可行性分析
系统的登录界面和业务逻辑简洁明了,采用一般的界面窗口来登录界面,整个系统更加人性化,用户操作更加简洁方便。本系统在操作和管理上比较容易,还具有很好的交互性等特点,在操作上是非常简单的。本系统可以进行设计开发。通过电脑进行访问操作,用户一定能够很快就会对系统熟悉,稍微简单了解下本系统,就能很快上手。
3.2系统现状分析
由于系统开发出来后使用的人数众多,对于这些用户在管理上会给系统带来繁重的工作量。最后通过前期的调研总结出对现有管理状况分析如下:
(1)缺少统筹规划
系统管理中对标准化、安全性、整体性等方面不够完善,不可避免要投入大量的时间精力和人力去规划好网站后续发展,要实现统一规划就必须引入信息规范化管理后才能实行,本系统充分考虑用户的体验感,突出重点慢慢推进。
(2)业务逻辑繁琐
随着互联网技术越来越成熟,毕业实习管理系统不断更新迭代,现在许多毕业实习管理系统的界面和业务逻辑都太追求复杂和技术,往往忽略了用户体验,一个好的系统不在于它的功能是否新颖,它的逻辑代码是否复杂,而是在于它是否有一个简洁的界面和简单的业务逻辑,让用户操作起来更简单。
(3)内容定位模糊
除了系统体验之外,好的内容才是各网民最在意的,现在许多毕业实习管理系统是面向所有群体的,既然是面向所有的网民,那么各个网民想表达的想法也是层出不穷的,所以就会造成系统的文章内容是各式各样、参差不齐的,系统就没有自己的特点,没有内容特点也就没有了优势,所以系统的内容必须要有精确的定位。
设计本系统时考虑到开放性和兼容性上的问题,要在将来具备扩充的可行性。做到信息更新及时,能够解决系统信息更新迭代,增强用户的体验感。
对于以上陈述,对建设的目标要从实际工作中出发,具体表现如下:
一、系统集信息管理与测评为一体,信息及时更新,功能更强大;
三、系统内容定位精确;
四、系统业务逻辑简单易操作,通过详细论证来确定系统总体的需求。
3.3系统用例分析
在设计系统的过程中,用例图是系统设计过程中必不可少的模型,用例图可以更为细致的,结合系统中人员的有关分配,能够从细节上描绘出系统中有关功能所完成的具体事件,确切的反映出某个操作以及它们相互之间的内部联系。
其中参与者就是和系统能够发生交互的外在实体,一般可以指系统的某个用户。一个用例图就能对应出系统中的一个功能过程,系统中完整的功能都是由许多不同的用例图所组成的。系统用例图如下所示:
管理员可以对系统首页、学生管理、物品分类管理、物品信息管理、心愿贴、系统管理、订单管理、用户信息等进行操作管理。其用例分析如图3-1所示。
图3-1管理员用例图
学生可以对系统首页、物品信息管理、订单管理、用户信息等进行操作管理。其用例分析如图3-2所示。
图3-2学生用例图
3.4系统流程分析
流程图就是用它已经特定的图形符号以及相应的线条,用来展现出系统在执行中的整个的过程。由于这种图形能够很方便的描绘系统的一系列流程,所以它的所有的图形符号是比较关键的,基本都是一个图形符号就能表示某个过程的一个单独的步骤。流程图不只是提供出比较完整、全面的执行过程,而且在整个团队的协作设计过程中,还可以发现其中有可能存在的缺陷以及不足,便于在后续的过程中能够及时的纠正和完善系统。
通过流程图可以对系统的需求和相关过程进行分析,能够详细的细分到每个部分的设计。对于设计者来说在开发过程中能够使用流程图作为基础,可以快速提高自身的逻辑思想,并且还能在后续的操作中能够有章可循,在系统的设计中最重要的就是程序的设计,然后才是程序的具体编写,流程图便是在设计过程中重要的工具,以下就是部分流程图设计。
登录模块有许多规则,这些规则是用来限制用户权限的,没有登录账号的用户除了浏览文章之外不可以对网站进行操作,用户进入系统前要进行登录,登录成功后方可对相关权限的操作。登录流程如下所示。
图3-3系统登录流程图
系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。
同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-4所示。
图3-4系统操作流程图
管理人员或者其他用户找到需要修改的信息后,然后将要修改的数据对应的输入到修改框里面。当数据合法的时候,则提示信息为添加成功。这时候这条数据就会被添加到了数据对应的数据库表中。如果不合法,则提示信息为添加失败,这就要重新把数据在输入一次来验证。修改信息流程图如图3-5所示。
图3-5修改信息流程图
第4章 系统设计
4.1系统功能结构设计图
本次系统所涉及到的有关的功能,都是用功能结构图来简洁和清晰的表示出来,功能结构图就是能够把比较复杂的功能结构用图的形式清晰的描绘下来,并且为后续的设计以及测试等模块提供了明确的方向,在构思功能结构图的时候,便可以给设计的过程带来一定的思维导向,不至于在设计过程中有所遗漏,可以尽可能的明确系统所涉及到的功能。系统的功能结构图如图4-1所示。
图4-1 系统功能结构图
4.2数据库设计
当前用户量最多的数据库是关系型数据库,属于面向对象系统设计。主要考虑的是怎样去对类映射到关系数据库的二维表上。目前可以采用数据库建模来实现。本系统主要E-R实体属性如图4-2所示:
图4-2系统主要E-R实体属性图
物品系统的管理中的数据由多个表组成,每个表都有对应的字段,操作该系统时,使用到的功能需要进行数据存储,这时数据将会在表中相应的字段里更新内容,并进行保存。该管理系统中共包含的表具体如下:
表4-1:心愿贴
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-2:物品信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-3:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-4:管理员表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-5:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
表4-6:公告信息分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
typename | varchar | 200 | 分类名称 |
表4-7:公告信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
typename | varchar | 200 | 分类名称 | ||
name | varchar | 200 | 发布人 | ||
headportrait | longtext | 4294967295 | 头像 | ||
clicknum | int | 点击次数 | 0 | ||
clicktime | datetime | 最近点击时间 | |||
thumbsupnum | int | 赞 | 0 | ||
crazilynum | int | 踩 | 0 | ||
storeupnum | int | 收藏数 | 0 | ||
picture | longtext | 4294967295 | 图片 | ||
content | longtext | 4294967295 | 内容 |
表4-8:好友表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
uid | bigint | 用户ID | |||
fid | bigint | 好友用户ID | |||
name | varchar | 200 | 名称 | ||
picture | longtext | 4294967295 | 图片 | ||
role | varchar | 200 | 角色 | ||
tablename | varchar | 200 | 表名 | ||
alias | varchar | 200 | 别名 | ||
type | int | 类型(0:好友申请,1:好友,2:消息) | 0 |
表4-9:学生
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
xueshengzhanghao | varchar | 200 | 学生账号 | ||
mima | varchar | 200 | 密码 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
xingbie | varchar | 200 | 性别 | ||
nianling | int | 年龄 | |||
shoujihaoma | varchar | 200 | 手机号码 | ||
touxiang | longtext | 4294967295 | 头像 | ||
sfsh | varchar | 200 | 是否审核 | 待审核 | |
shhf | longtext | 4294967295 | 审核回复 | ||
money | double | 余额 | 0 |
表4-10:物品信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
wupinmingcheng | varchar | 200 | 物品名称 | ||
wupinfenlei | varchar | 200 | 物品分类 | ||
wupintupian | longtext | 4294967295 | 物品图片 | ||
xinjiuchengdu | varchar | 200 | 新旧程度 | ||
wupinxiangqing | longtext | 4294967295 | 物品详情 | ||
xueshengzhanghao | varchar | 200 | 学生账号 | ||
xueshengxingming | varchar | 200 | 学生姓名 | ||
shoujihaoma | varchar | 200 | 手机号码 | ||
onelimittimes | int | 单限 | |||
alllimittimes | int | 库存 | |||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
price | double | 价格 | |||
storeupnum | int | 收藏数 | 0 |
表4-11:消息表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
uid | bigint | 用户ID | |||
fid | bigint | 好友用户ID | |||
content | varchar | 200 | 内容 | ||
format | int | 格式(1:文字,2:图片) | |||
isread | int | 消息已读(0:未读,1:已读) | 0 |
表4-12:物品分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
wupinfenlei | varchar | 200 | 物品分类 |
表4-13:购物车表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | wupinxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 图片 | ||
buynumber | int | 购买数量 | |||
price | double | 单价 | |||
xueshengzhanghao | varchar | 200 | 商户名称 |
表4-14:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
表4-15:订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | wupinxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 商品图片 | ||
buynumber | int | 购买数量 | |||
price | double | 价格 | 0 | ||
total | double | 总价格 | 0 | ||
type | int | 支付类型 | 1 | ||
status | varchar | 200 | 状态 | ||
address | varchar | 200 | 地址 | ||
tel | varchar | 200 | 电话 | ||
consignee | varchar | 200 | 收货人 | ||
logistics | longtext | 4294967295 | 物流 | ||
remark | varchar | 200 | 备注 | ||
xueshengzhanghao | varchar | 200 | 商户名称 | ||
sfsh | varchar | 200 | 是否审核 | ||
shhf | longtext | 4294967295 | 审核回复 | ||
role | varchar | 200 | 用户角色 |
4.3本章小结
对系统的结构和流程设计完成后使其有一个框架,再对主要功能模块进行设计,并对功能描述、输入项、输出项和实现方法进行了详细描述。绘制出系统的E-R图,可以更直观地表达实体之间的关系。通过表字段之间的关系对数据库进行设计。系统的详细设计完成后,为下一章的操作做了很好的铺垫。
第5章 系统实现
5.1系统功能实现
5.1.1前台首页页面实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到毕业实习管理系统的设计与实现的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
图5-1系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如老人账号、密码等)并提交。前端将这些信息通过HTTP请求发送到Python后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册页面如图5-2所示:
图5-2系统注册界面
物品信息:在物品信息页面输入物品名称和价格可以查询到物品详细信息,并根据需要进行添加到购物车、立即购买、评论或收藏操作;物品信息详细界面如图5-3所示:
图5-3物品信息详细界面
购物车模块在Vue前端允许用户选择并添加商品到他们的购物车。这些信息通过HTTP请求发送到Python后端,后端处理这些请求并在MySQL数据库中更新用户的购物车内容。用户可以查看、修改购物车中的商品数量或移除商品。最后,在结账时,用户提交订单,后端验证支付信息并处理订单,同时更新数据库中的库存状态。这个过程实现了一个从选择商品到完成购买的完整交易流程。购物车详细界面如图5-4所示:
图5-4购物车详细界面
个人中心:在个人中心页面可以对个人中心、修改密码、聊天记录、物品信息、我的订单、我的地址、我的收藏等进行详细操作;个人中心页面如图5-5所示:
图5-5个人中心界面
我的订单:在我的订单页面可以对未支付、已支付、已发货、已完成、已退款和已取消订单进行详细操作;我的订单详细界面如图5-6所示:
图5-6我的订单详细界面
5.2 后台模块实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Python后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。后台登录界面图5-7所示:
图5-7后台登录界面
管理员进入主页面,主要功能包括对系统首页、学生管理、物品分类管理、物品信息管理、心愿贴、系统管理、订单管理、用户信息等进行操作。管理员主界面如图5-8所示:
图5-8管理员主界面
学生管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义学生的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括学生的查询、新增、删除或审核等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现学生的详情、更改或移除等功能。状态管理可以通过Vuex来维护,比如在store目录下定义学生模块的状态、突变、动作和获取器。如图5-9所示:
图5-9学生管理界面
物品信息功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义物品信息的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括物品信息的查询或删除等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现物品信息的详情、更新、查看评论或移除等功能。状态管理可以通过Vuex来维护,比如在store目录下定义物品信息模块的状态、突变、动作和获取器。如图5-10所示:
图5-10物品信息管理界面
管理员点击心愿贴,在心愿贴页面输入用户名进行查询或删除心愿贴列表,并根据需要对心愿贴详情信息进行详情、更改、回复或移除操作;如图5-11所示:
图5-11心愿贴界面
管理员点击系统管理,在公告信息页面输入标题进行查询、新增或删除公告信息列表,并根据需要对公告详情信息进行详情、更改或移除操作;还可以对轮播图管理和公告信息分类进行详细操作。如图5-12所示:
图5-12系统管理界面
学生进入主页面,主要功能包括对系统首页、物品信息管理、订单管理、用户信息等进行操作。学生主界面如图5-13所示:
图5-13学生主界面
学生点击物品信息管理,在物品信息页面输入物品名称、价格、选择物品分类和新旧程度进行查询、新增或删除物品信息列表,并根据需要对物品详情信息进行详情、更新、查看评论或移除操作;如图5-14所示:
图5-14物品信息管理界面
管理员点击订单管理,在已支付订单页面输入订单编号和商品名称进行查询已支付订单列表,并根据需要对已支付订单详情信息进行详情或发货操作;还可以对已发货订单、未支付订单、已完成订单、已取消订单和已退款订单进行详细操作。如图5-15所示:
图5-15订单管理界面
5.3本章小结
本章主要对系统的各大功能进行一个简单的阐述说明,给出各个功能模块实现截图。
第6章 系统测试
从多个角度进行测试找到系统中存在的问题是本系统首要的测试目的,通过功能测试寻找出系统缺陷并改正,确保系统没有缺陷。在测试过程中证明系统满足客户需求,发现问题和不足及时改正。测试完成之后得出测试结论。
6.1系统测试目的
在物品网站的开发周期中,系统测试是必不可少且考验耐心的过程。其重要性在于,它是保证系统质量和牢靠性的最后一道关,也是整个系统开发过程的最后一次检查。
系统测试主要是为了避免用户在使用时发生问题,增强用户体验感,为了不影响用户的使用,我们需要从多角度、多思路去考虑系统可能遇到的问题,通过不同的模拟场景来发现缺陷并解决问题。在测试的过程中也可以了解到该系统的质量情况,系统功能是否健全,系统逻辑是否顺畅。一个合格的系统测试过程完成后将大大提升系统质量和使用感。测试的目标是验证系统是否符合需求规格说明书的定义,并找出与需求规格说明书不符合或与之冲突的内容。测试过程中一定站在用户的角度考虑问题,避免一些不切实际的场景,浪费测试时间,从而可能会引起问题导致预期结果与实际结果不符。
6.2系统功能测试
对系统功能模块进行测试,通过点击、输入边界值和必填项非必填项的验证等方法进行一系列的黑盒测试。通过编写测试用例,根据测试用例中的内容进行测试,最后得出测试结论。
登录功能测试方案:当需要登入该系统时,通过用户名,密码等功能点进行验证,用户在输入时需要输入与数据库内存储的数据匹配的内容,当其中某项输入错误时系统将提示输入错误。此界面对角色权限也有相应的校验,当用户角色的账号选择管理员角色登录时,也会报错。登录功能测试用例如表6-1所示。
表6-1 登录管理测试用例
编号 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
01 | 用户名:**** 密码:**** | 登入系统 | 成功登入系统 | 和估算结果一样 |
02 | 用户名:**** 密码:**** | 密码错误 | 密码错误,请重新输入密码 | 和估算结果一样 |
03 | 用户名:**** 密码:**** | 信息错误 | 信息错误 | 和估算结果一样 |
04 | 用户名:空 密码:**** | 用户名必须填写 | 请输入用户名 | 和估算结果一样 |
05 | 用户名:**** 密码:空 | 密码错误 | 密码错误,请重新输入密码 | 和估算结果一样 |
6.3系统测试结论
本系统主要使用黑盒测试,通过模拟用户使用系统实现各个功能编写测试用例,并进行测试。以确保系统流程的正确性。系统测试必不可少,可以使系统更加完善,该系统的可使用性也会更高。
测试该系统主要为了验证系统的功能模块是否满足我们最初的设计理念,验证各个功能模块逻辑是否正确,此系统不需要过于复杂的逻辑处理,以便于使用者操作。测试的最终目的也是围绕着用户使用展开。测试过程中所有场景都应符合用户需求,不可偏离需求目标,遇到问题时要站在用户的角度进行思考。经过一系列的测试过程后得到最终的测试结果,从测试结果可以看出,实现的系统在功能和性能方面满足设计要求。
6.4本章小结
阐述测试的目的后并对系统进行功能测试。通过测试系统,找出问题,然后纠正并修改系统并得到测试结论。由此产生的系统是一个完整和独立的系统,可以独立工作并实现所有预先设计的功能。从测试结果可以看出,实现的系统在功能和性能方面满足设计要求。
结 论
系统开发的过程中,应用了B/S结构技术。在代码执行方面,主要是SQL的速度,采用了MYSQL数据库在表结构的设计中增加了索引和主键,也设计了表与表之间的主外键关系,使表结构的设计能够和SQL语句在执行过程中有更快的速度来确保页面响应的及时性。通过运用以上技术手段,使系统的性能得到了大幅度的提升,上述章节也对这些技术进行了具体的描述,但是本系统还是有一些不足之处,后续仍要不断地进行迭代更新,以符合市场需求,避免被市场淘汰。
该项目不仅完成了任务书中的所有要求,还增加了其他功能,以确保系统更加完整。实现了解放劳动力的需求,使管理物品信息更加方便,实现信息化管理,对物品信息一目了然,用户可以在网上了解物品信息。
参考文献
[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.
致 谢
在这次毕设的开发过程中遇到重重困难,但幸运的是经过我的思考和不停地尝试解决问题,还有在导师的细心指导下我终于圆满地完成了此次毕业设计。在此,我深深地感谢我的导师,每次遇到难题时,我的导师总是会耐心给我解答,他每时每刻的督促使我不敢有丝毫的怠慢,在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力指导下我才能将课本上的知识与自己所设计的系统相结合,真正的做到学以致用。感谢您牺牲自己的休息时间为我们解惑,利用其丰富的教学和项目经验对我们的每一次提问进行耐心指导。认真考虑了系统每一步的实施,发现开发一款优秀的软件绝非一朝一夕之事,需要长期的积累和经验。通过这段时间的亲身经历,我感觉自己学到了:收集、整理资料、共同协作、分析及处理问题等许多方面的知识。然后,在老师的引导和学生的帮助下,让我对这个毕设进行了更深入的思考。并花费了大量的心思和精力来完成这个系统。在这段时间里,我学到了以前没有掌握过的东西。更重要的是,我了解开发人员在开发系统软件时所需要的方法、策略和步骤。如何思考一些问题,以及如何解决它们。最终我通过这个系统的设计学到不少的东西,也接触到很多以前没有接触过的知识。同时还得到了宿友们的支持和帮助,让我重新认识了建立友情的重要性,在将来能够帮助我的事业生涯中一帆风顺!
再次感谢鼓励我的老师和朋友,以及给予我帮助与鞭策的每一个人,我会带着大学收获的知识走向社会,报校祖国!