根据需求,确定系统采用python技术, MySQL作为数据库。整个系统要操作方便、易于维护、灵活实用。主要实现了系统管理、商品管理、订单管理、活动信息、留言管理、评价管理、会员管理等功能。
语言: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格式进行数据交互.充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护等特点
随着Internet和信息技术的发展,网络消费逐渐的进入我们的生活中,方便了我们生活,并改变我们的消费方式,可以买到自己喜欢的东西,极大地促进社会经济的发展。目前,购物网站在国际互联网上可以实现的商务功能已经多样化,可以完成从最基本的信息管理等功能,可以说,现在传统购物所具备的功能几乎都可以在互联网上进行高效快捷运作,因此,开发一个玩酷网站是至关重要的。目 录
1 绪论 4
1.1 系统开发目的 4
1.2 系统开发意义 4
2.系统主要开发技术 5
2.1 python简介 5
2.3 MYSQL数据库 7
2.4 B/S简介 8
2.4.1 作用 8
2.4.2 架构软件 9
3 需求分析 11
3.1 可行性分析 11
3.1.1技术可行性 11
3.1.2 经济可行性 11
3.1.3 操作可行性 11
3.2 系统功能分析 11
3.3 系统流程图 12
3.4 系统运行环境 14
3.5 系统设计原则 14
4 系统的总体设计 15
4.1 系统功能设计 15
4.2 数据库实体设计 15
4.3 数据表设计 17
5 系统的详细设计与实现 20
5.1 首页页面 20
5.2 会员注册页面 20
5.3 商品展示页面 21
5.4 商品详情页面 21
5.5 购物车页面 22
5.6 活动信息页面 22
5.7 添加分类信息页面 23
5.8 商品管理信息页面 23
5.9 添加活动信息页面 24
5.10 留言管理信息页面 24
5.11 会员管理信息页面 25
6 系统测试 26
6.1 软件测试的目的 26
6.2 软件测试的基本原则 27
总结 29
致 谢 30
参考文献 31
1 绪论
1.1 系统开发目的
网上购物是当前比较流行的一种新型的购物形式,深受广大青年喜爱的一种商业性购物活动。网上购物是一种电子商务模式,是通过以互联网为平台,买家通过网上购物,网上银行等支付方式完成整个购物的过程。网上购物的优点主要体现在它不需要实体,对于顾客和卖家来说实惠是比较大,这也使得网上购物在最近几年在我国的发展是相当迅速的。
1.2 系统开发意义
随着电子商务规模的发展不断扩大,在线商品数量和品种急剧增加,如今是一个信息时代,网络技术日渐成熟,人们的生活已经离不开网络,越来越多的商家,通过网上进行商品的销售、宣传和推广,同时,网上销售商品还能节约更多的成本,加上现在物流的发达,通过网上提高销量,节约人力和物力成本。而人们,足不出户就能购买到喜欢的商品,而且还有一个较好的结算方式,购买者和商家只需和网上银行打交道,不必当面直接支取现金,支付方式可选性也较广,这也是很多商家考虑到的,安全、快捷的电子支付方法将成为网上购物健康持续发展的主要要素。因此,我选择了开发一款玩酷网站是符合当前电子商务业发展和满足广大消费者的网上购物需求的。
2.4.1 作用
B/S的最大优点是它可以在任何地方操作,无需安装任何特殊软件。 只要您拥有可以访问Internet的计算机,就可以安装客户端,零安装和零维护。 系统的扩展非常容易。B/S结构的使用越来越多,特别是需求促进了AJAX技术的发展,其程序也可以在客户端计算机上进行部分处理,大大减轻了服务器的负担; 并增加互动性。可以执行本地实时刷新。
2.4.2 架构软件
(1)维护和升级方法很简单。目前,软件系统的改进和升级正变得越来越频繁,B/S架构产品显然表现出更加便利的特性。对于稍大的单元,如果系统管理员需要在数百甚至数千台计算机之间来回运行,可以想象效率和工作量,但B/S架构软件只需要管理服务器。所有客户端都只是浏览器,根本不需要任何维护。无论用户多大,多少分支都不会增加维护和升级的工作量,所有操作只需要服务器;如果是远程的,只需要将服务器连接到专用网络即可实现远程维护和升级。并分享。结果,客户变得更“瘦”,服务器变得更“胖”,这是未来信息发展的主流。将来,软件升级和维护将变得更加容易和易用,节省的人力,物力,时间和成本将是显而易见的。因此,维护和升级革命的方式是“瘦”客户端,“胖”服务器。
(2)降低成本,选择更多。 每个人都知道Windows几乎统一在桌面计算机,浏览器已成为标准配,但Windows在服务器操作系统中没有绝对的优势。 目前的趋势是使用B/S架构的应用程序管理软件可以安装在高度安全的Linux服务器上。 因此,服务器操作系统有很多选择。无论您选择哪种操作系统,大多数人都可以将Windows用作桌面操作系统计算机。这使得除了Linux操作之外,最流行的免费Linux操作系统得以迅速发展。系统是免费的,甚至数据库都是免费的。这个选项很受欢迎。
例如,很多人每天都去“新浪”网络,只要安装浏览器,您就不需要知道“新浪”服务器使用的操作系统。实际上,大多数网站并不使用Windows操作系统,而是大多数用户,计算机本身都由Windows操作系统安装的。
(3)应用程序服务器在运行时期间负载很重。 由于B/S架构管理软件仅安装在服务器上,因此网络管理员只需要管理服务器。用户界面的主要事务逻辑完全由服务器端WWW浏览器实现,并且事务逻辑非常小。在前端(浏览器)实现中,所有客户端只有一个浏览器,网络管理员只需要硬件维护。但是,应用程序服务器在较重的数据负载上运行。一旦服务器“崩溃”,后果是不可想象的。因此,许多组织都有数据库存储服务器来防止意外。
3 需求分析
3.1 可行性分析
该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性等方面进行分析。
3.1.1技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本网站用的是python开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。
3.1.2 经济可行性
开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。
3.1.3 操作可行性
随着社会的发展,电脑已进入千家万户,大多数人都能熟练的操作电脑,拥有丰富的使用经验。并且在开发时,要充分考虑用户的使用习惯,尽量方便用户的操作,为用户提供友好的界面,只要拥有一定电脑操作经验的人员即可使用本系统。因此,该系统在操作上是可行的。
3.2 系统功能分析
本系统实现一个玩酷网站,分为会员和管理员两种用户。具体功能描述如下:
会员模块主要包括:
首页:网站打开的第一个页面,显示网站的最新信息。
会员注册/登录:实现会员的注册和登录。
商品展示:实现商品的列表显示,点击可以查看商品详情,会员登录后可以加入购物车或收藏。
购物车:会员可以通过购物车管理自己订购的商品,可以删除商品,可以清空购物车、继续购物、提交订单等。
活动信息:实现活动信息的列表显示,点击可以查看活动详情。
在线留言:实现在线留言的列表显示,会员登录后可以发表留言。
会员中心:会员登录后可以进入会员中心,在会员中心可以修改自己的资料,可以添加、查看、修改或删除自己的地址,可以查看自己的订单,可以查看自己的收藏。
后台管理员模块包括:
系统管理:管理员可以修改自己的登录密码。
商品管理:管理员可以对商品分类信息进行添加、查看、修改或删除,对商品信息进行添加、查看、修改或删除。
订单管理:管理员可以对订单信息进行管理。
活动信息:管理员可以对活动信息进行管理。
留言管理:管理员可以对留言信息进行查看或删除。
评价管理:管理员可以查看评价信息。
会员管理:管理员可以对会员信息进行查看或删除。
2.3 MYSQL数据库
MySQL数据库管理系统是由瑞典的MySQL AB公司开发的,但是几经辗转,现在是Oracle产品。它是以“客户/服务器”模式实现的,是一个多用户,多线程的小型数据库服务器。而且MySQL是开源数据的,任何人都可以获得该数据库的源代码纠正MySQL的缺陷。
MySQL具有跨平台的特性,它不仅可以在Windows平台上使用,还可以在UNX、Linux和Mac OS等平台上使用。相对其他数据库而言,MySQL的使用更加方便、快捷,而且MySQL是免费的,运营成本低,因此,越来越多的公司开始使用MySQL。
作为一个成熟的数据库管理系统,要满足各种各样的商业要求,功能肯定是会被列入重点参考对象。MySQL的早期版本功能非常简单,只能做一些很基础的结构化数据存取操作,但是经过多年的改进和完善之后,现在它已经基本具备了所有通用数据库管理系统需要的相关功能。
MySQL基本实现了ANSI SQL92的大部分标准,仅有少部分并不经常被使用的没有实现。比如在字段类型支持方面,另一个著名的开源数据库PostgreSQL支持的类型是最完整的,而Oracle和其他一些商业数据库(比如DB2、Sybese等)较MySQL要相对少一些。这一点,我们可以通过TCX的Crash-me测试套件得出的测试报告得知。这事务支持方面,虽然MySQL自己的存储引擎并没有提供,但是已经通过第三方插件式存储引擎InnoDB实现了可SQL92标准定义的4个事务隔离级别的全部,只是在实现的过程中每一种引擎的实现方式可能有一定的区别,这在当前商用数据库管理系统中并不多见。比如,大名鼎鼎的Oracie数据库就仅仅实现了其中的两种(Serializable和Read Commited),而PostgreSQL支持4种隔离级别。
不过在可编程支持方面,MySQL和其他数据库相比还有一定的差距,虽然最新版的MySQL已经开始提供一些简单的可编程支持,如开始支持Procedure、Function、Trigger等,但是所支持的功能还比较有限,和其他几大商用数据库管理系统相比,还存在较大的不足。如Oracie有强大的PL/SQL,SQL Server有T-SQL,PostgreSQL也有功能很完善的PL/PGSQL的支持。
整体来说,虽然在功能方面MySQL数据库作为一个通用的数据库管理系统暂时还无法和PostgreSQL相比。但是其功能完全可以满足我们的通用商业需求,提供足够强大的服务。而且不管是哪一种数据库在功能方面都不敢声称自己比其他任何一款商业数据库管理系统都强,甚至都不敢声称能够拥有某类数据库产品的所有功能。因为每一款数据库管理系统都有自身的优势,也有自身的局限,这都说明每一款产品重点服务的方向不一样。
2.4 B/S简介
B/S结构(Browser/Server,浏览器/服务器模式)是WEB兴起后的网络结构模式。 此模式通过统一客户端并将系统功能核心集中到服务器,简化了系统开发,维护和使用。 只需在客户端上安装浏览器,例如Netscape Navigator或Internet Explorer,服务器就会安装Oracle,Sybase,Informix或SQL Server等数据库。 浏览器通过Web服务器与数据库交互。
3.4 系统运行环境
操作系统:Windows XP、Windows 2000、Windows 2003、Windows 7或者Windows 10
数据库:MYSQL
浏览器:谷歌浏览器、360浏览器或IE浏览器
开发工具:Dreamweaver CS6
3.5 系统设计原则
参考每个模块的功能和具体特点,系统应实现以下目标:
(1)稳定性。整个系统应该能够稳定运行,硬件配置的本地更改不会影响整体正常运行,其他系统错误不会导致系统无法正常运行。
(2)准确性。系统管理员根据操作指导操作生成的权限数据,并且所有前端用户的操作和数据库原来改变的实际状态应该是一致的,以防止错误记录,数据未对齐等。
(3)安全性。所有数据定期备份,在数据库中保留一个或多个最高权限的帐户名和密码,以避免用户误用并造成不必要的损失。
(4)可维护性。系统易于维护,易于升级。
(5)独立性。每个功能模块尽可能独立,减少与其他模块的耦合,尽可能根据客户需要选择安装这些模块,不要安装这些模块。
(6)易用性。良好的界面与运营商,使用浏览器/服务器(浏览器/服务器)结构与主机交互良好。
6 系统测试
软件测试是软件工程中的一个环节,是开发项目整体的一部分。软件测试是有计划、有组织的,是保证软件质量的一种手段,他是软件工程中一个非常重要的环节,因此可以认为它是伴随软件工程的诞生而诞生的,伴随着软件复杂程度的增加、规模的增大,软件测试作为一种能够保证软件质量的有效手段,越来越受到人们的重视,软件测试最终的目的是使产品达到完美。
软件测试方法没有完全标准化和统一化,因为从软件产品的产品到软件测试都有各式各样的软件,这里介绍的软件测试方法可用于多数应用软件的测试。
软件测试不是万能的,不可能发现全部的软件缺陷,而且软件的功能和性能不是由测试决定的,软件测试是有局限性的。
软件测试是在完成程序设计阶段工作后,经程序编码员测试已初步奠定了基础,进一步完成的测试工作。软件要投入运行前是否正确无误这一点极其重要,所以软件要在投入运行前实施测试。未经周密测试的软件贸然投入运行,将会造成难以想象的后果。
6.1 软件测试的目的
软件测试的不同机构会有不同的测试目的,相同的机构也可能有不同测试目的。
软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的问题。如果测试的目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。
测试可视为分析、假设和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位,为了确保软件的质量,较理想的做法应该是对软件的开发过程,按软件工程各阶段形成的结果,分别进行严格的审查。
软件测试的目的具有如下几点:
帮助开发人员、测试工程师发现问题、分析问题。
减少软件的缺陷数目或者降低软件的缺陷密度。
提高软件的可靠性。
评估软件的性能指标。
增加用户对软件的信心。
测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行。
6.2 软件测试的基本原则
制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短时间内完成一个高水平的测试。测试计划应包括:所测试软件的功能、输入和输出、测试内容、各项测试的进度安排、资源要求、测试资料、测试工具、测试用到的选择等。
又尽可能早地开始测试,在软件生命周期中,1个错误发现的越晚,修复错误的周期越高,
测试应从“小规模”开始,逐步转向“大规模”,最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。
测试用例应由测试输入数据,测试执行步骤和与之对应的预期输出结果三部分组成。
按照组件和功能特征的优先级从高到低的顺序进行测试。
重点放在处理多预言字符串的直接或间接的输入/输出。
对测试错误结果一定要有一个确认的过程。
回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
妥善保存一切测试过程文档,意义是不言而喻的,测试的重视性往往要靠测试文档,妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
在各种语言环境下安装应用程序
通过各种区域设置现卸载应用程序。
使用不同区域的输入法编译器交互式文本输入。
进行多语言文本的剪贴板操作。
正确输入,存储并检索区域的特定数据。
验证带有数据分隔符的输入时间,日期和数值。
程序员应该避免检查自己的程序,测试工作应该由独立的专业的测试软件和软件测试机构来完成。
测试用例的设计要确保能覆盖所有可能路径。
充分注意测试中的群集现象,未经表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检查率成正比,应该对错误群集的程序段进行重点测试。
严格排除测试的随意性。
应当对每一个测试结果做全面的检查。
在设计测试用例时,应当包括合理的输入条件和不合理的输入条件,合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指蜜异常的、临界的、可能引起问题异变的输入条件,软件系统处理非法命令的能力必须在测试时受到检验,用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。
总 结
本次开发的玩酷网站已经接近尾声阶段了,在这次独立完成毕业设计的期间,我自己体会到了很多的东西,另外我很想说的就是独立开发软件真的很能让人在开发期间得到锻炼,不管是需求分析,还是系统的设计以及系统功能详细实现还有最后的测试工作,每一步都要小心翼翼的完成,一步一步来,不然任何环节出现了差错,返工起来也很麻烦,开发系统过程中,遇到了很多的难题,比如玩酷网站需要具有什么样的功能,这个我还是思考了很久,后来同学给我提示了一下,参考别人做好的系统,看看人家设计了什么功能,自己就多多参考下,后来这个问题就很好解决了,最难的就是系统编码了,我这个人本来就比较粗心,编码出现很多不该出现的错误,不该打空格也不小心键盘空格键多敲了两下,整得自己老是程序运行出错,找了好久都没有解决,后来无奈找到室友帮忙看看,慢慢检查终于找到问题了,编码过程真的很心塞。还好东拼西凑总算完成了功能要求了。系统整体界面虽然不是很好看,但起码不花哨,用户使用起来整体感觉就是简洁,功能体验虽然有点啰嗦,但是需要的功能都已经具备了。
自己的身份目前还是学生,开发程序肯定是不会考虑周全,程序完成开发后也经过了一系列测试,整体来说还是没有发现明显的操作逻辑错误,自己在毕设制作过程中不仅知识有所增加,独立学习的能力也有所提高了,更重要的就是遇到问题向周边同学寻求帮助,这个是很有必要的。总的来说毕业设计的圆满完成,我真的觉得很自豪。
致 谢
经过一个学期的忙碌,这个毕业设计即将结束。由于缺乏经验,在设计过程中难免有许多问题会考虑不周,如果没有老师的悉心指导与督促,以及设计小组的同学们的帮助与支持,毕业设计可能无法顺利完成。
在毕业设计过程中,老师的指导使我们受益匪浅。他扎实的理论知识和丰富的实践经验给我留下了深刻的印象。这也是老师认真负责的教学态度,这使我们从毕业设计中脱颖而出。真正学会应用所学知识,将课本知识与实际工程中遇到的问题联系起来,整合您的专业知识,提高我们发现和解决问题的能力。从设计之初到设计的完成,老师严谨的学习精神和对设计过程的严格要求已成为我们未来学习和工作的良好范例。我想为毕业设计团队努力工作。本学期的老师们表示最诚挚的谢意。
回顾这个学期,忙碌和紧张似乎充满了整个设计过程,但在团队成员的关心和帮助下,设计过程充满了欢乐。我们一起学习,互相讨论,共同解决问题。毕业设计不仅是对我们学习的考验,也是与他人合作的好机会。
最后,我要感谢学校和学院的栽培,为我们的学习和毕业设计创造良好的环境和设施。随着毕业设计的结束,我们也将离开校园。有多少耕耘就有多少收获我相信,我们离开校园后,我们可以将自己的价值观体现出来,回报父母、回报学校,为社会做出贡献。我要再次感谢帮助我完成毕业设计的老师和同学。祝你们在未来的工作和生活中一切顺利。