网上商城是一个综合性在线电子商务平台,它为用户提供一个友好的界面,顾客可以浏览和购买各式各样的商品。商城内商品按类别细致划分,以便用户轻松找到所需物品。每件商品都配有详细的描述信息,包括价格、规格、用户评价等,以辅助消费者做出购买决策。网上商城还设有论坛区域,用户可以在此交流购物体验,分享产品信息。购物车功能使得用户能够挑选并暂存想要购买的商品,在决定结算前进行管理。订单系统记录用户的购买历史,并提供订单跟踪服务。用户信息部分允许顾客维护个人资料,管理收货地址,查看历史订单,以及追踪订单状态。整个平台的设计旨在为用户提供一个便捷、安全、愉悦的在线购物体验。
系统采用基于Python语言网站开发技术设计的,结合django框架和Mysql数据库管理系统对网上商城相关信息进行管理。按照软件工程学理论完成各阶段设计,经过调试测试达到了管理网上商城的能力。满足了管理员和用户的需要。论文从系统开发过程概述、开发工具简介、系统总体设计、系统开发、软件测试等几个方面进行了介绍。最后总结了系统开发的得失。
关键词:网上商城;Python技术;django框架;Mysql;
Online mall is a comprehensive online e-commerce platform, it provides users with a friendly interface, customers can browse and buy a wide variety of goods. The goods in the mall are carefully divided by category, so that users can easily find what they need. Each product is equipped with detailed description information, including price, specifications, user reviews, etc., to assist consumers in making purchase decisions. The online mall also has a forum area where users can exchange shopping experiences and share product information. The shopping cart feature allows users to select and temporarily store items they want to purchase and manage them before deciding to pay. The order system records the user's purchase history and provides order tracking services. The User Information section allows customers to maintain personal data, manage shipping addresses, view historical orders, and track order status. The entire platform is designed to provide users with a convenient, safe and pleasant online shopping experience.
System based on Python language website development technology design, combined with django framework and Mysql database management system to manage online mall related information. According to the software engineering theory to complete each stage of the design, through the debugging test to achieve the ability to manage the online mall. Meet the needs of administrators and users. This paper introduces the system development process, development tools, system design, system development, software testing and so on. Finally, the gains and losses of system development are summarized.
Key words: online mall; Python technology; django framework; Mysql;
目 录
1 绪 论
1.1研究背景和意义
随着互联网技术的发展和普及,已经彻底改变了人们的购物方式和消费习惯。研究网上商城的背景不仅包括了信息技术的迅猛发展,也与全球化贸易的扩张、消费者需求的变化以及市场竞争的激烈程度密切相关。在信息化时代背景下,网上商城以其时间和空间上的优势,成为越来越多消费者的首选。它突破了传统零售的地理限制,让全球的消费者都能轻松购买到来自世界各地的商品。网上商城还提供了一个展示商家品牌和商品的平台,商家可以通过网络直达消费者,减少中间环节,降低交易成本,提高经济效益。
网上商城的研究具有重要的社会和经济意义。对于企业而言,了解和掌握网上商城的运营模式、市场策略、消费者行为等,有助于提升竞争力和市场份额。对消费者来说,网上商城提供了更为丰富的商品信息和便捷的购物体验,使得消费决策更加理性和高效。从宏观层面看,网上商城的发展推动了相关产业链的形成和发展,如物流、支付系统、网络营销等,对促进就业、创新商业模式、推动经济增长都有积极作用。
深入研究网上商城,不仅可以为企业提供市场拓展的策略指导,也能为消费者带来更加个性化和优化的服务体验,同时对宏观经济的健康发展起到一定的推动作用。随着未来技术的不断进步,如人工智能、大数据、云计算等新技术在网上商城的应用将进一步优化消费体验,提高运营效率,其研究价值和影响力将愈发显著。
1.2国内外研究现状
在国际层面,研究多聚焦于消费者行为分析、个性化推荐系统、用户体验优化、安全性问题以及大数据在商城运营中的应用等。发达国家的网上商城由于较早起步,拥有成熟的技术和市场环境,因此其研究更侧重于技术创新和市场细分,如通过数据挖掘技术来预测消费趋势,或者利用人工智能提升客户服务效率。跨境电商的研究也日益增加,关注于如何跨越国界和文化差异,打造全球化的在线购物平台。
在国内,随着互联网的迅速普及和电子商务的蓬勃发展,网上商城已成为商业变革的重要力量。国内的研究通常集中在商业模式创新、移动商务的发展、社会文化因素对电子商务的影响、网络安全及隐私保护等方面。中国的网上商城特别注重融合本土特色的市场策略,比如结合中国消费者的具体需求进行商品推广和服务改进。面对庞大的用户基数和激烈的市场竞争,国内网上商城也在持续探索如何结合社交网络、移动支付等新兴技术来吸引和保持用户群体。
无论是国内外,网上商城的研究都显示出一种多元化和综合化的趋势,涉及经济学、管理学、信息技术、社会学等多个学科领域。众多研究不仅推动了理论的发展,也为网上商城的实践提供了指导意义,促进了整个电子商务行业的健康和可持续发展。
1.3论文的结构
本文的主体结构如下:
第一章主要对当下的网上商城的背景及开发意义、国内外研究方面进行了重点论述。
第二章 重点介绍本系统的相关的开发技术,并对软件的部署环境进行必要的说明。
第三章 重点对系统进行需求分析、流程分析和可行性论述。
第四章 主要对系统整体功能进行设计和对数据库进行设计。
第五章 详细的对各个模块进行阐述,各个模块总体的设计以文字加图表的形式进行说明。
第六章 对系统的测试方法进行说明及测试结果的展示。
2 相关技术简介及部署环境说明
2.1 Python语言
Python是一种高级编程语言,其设计目标是易于阅读和编写。Python的语法简洁明了,具有丰富的标准库和第三方库,使得开发者可以快速构建各种应用程序。Python支持多种编程范式,包括面向对象编程、函数式编程和过程式编程。它还提供了许多内置的数据类型和函数,如列表、元组、字典、集合等,以及许多常用的数学函数和字符串操作函数。Python广泛应用于Web开发、数据分析、人工智能等领域。它有许多优秀的框架和库,如Django、Flask、Pandas、NumPy等,可以帮助开发者更高效地完成各种任务。总之,Python是一种功能强大、易学易用的编程语言,适合初学者和专业人士使用[2]。
2.2 Django框架
Django是一个基于Python的高级Web框架,它鼓励快速开发和干净、实用的设计。Django具有许多内置功能,如URL路由、表单处理、用户认证等,可以帮助开发者快速构建Web应用程序。Django采用MVC(Model-View-Controller)设计模式,将应用程序分为模型、视图和控制器三个部分。模型负责处理数据和业务逻辑,视图负责处理用户请求并返回响应,控制器负责协调模型和视图之间的交互。
还提供了许多强大的工具和库,如ORM(对象关系映射)、模板引擎、缓存系统等,可以帮助开发者更高效地完成各种任务。Django还有一个庞大的社区,提供了大量的第三方应用和插件,可以扩展Django的功能。总之,Django是一个功能强大、易用且灵活的Web框架,适合构建各种规模的Web应用程序。无论是初学者还是专业人士,都可以通过使用Django来快速开发出高质量的Web应用程序[3]。
2.3 Vue框架
Vue是一款轻量级的JavaScript框架,它主要用于构建用户界面。Vue具有简单易学、灵活高效的特点,可以快速地开发出交互性强的单页面应用。
Vue采用MVVM(Model-View-ViewModel)架构模式,将数据与视图分离,使得开发者可以更加专注于业务逻辑的开发。同时,Vue还提供了丰富的指令和组件库,可以帮助开发者快速构建复杂的用户界面。除此之外,Vue还具有响应式数据绑定、虚拟DOM、异步更新队列等特性,使得其在性能方面表现优秀。此外,Vue还有一个庞大的社区,提供了大量的第三方插件和工具,可以帮助开发者更好地使用Vue框架。总之,Vue是一款非常优秀的前端框架,可以帮助开发者快速构建高质量的单页面应用[5]。
2.4 MySQL简介
MySQL是一个关系型数据库管理系统,是Oracle公司的产品。MySQL是一种非结构化的语言,用户可以处理数据。自问世以来,MySQL受到了社会的广泛关注。与同类数据库相比,MySQL具有突出的优势,如运行速度快、应用范围广、数据库安全性高等。在语言结构上,MySQL语言简单,其他数据库需要大段代码才能实现操作,而MySQL只需要一小部分甚至几行代码。综上所述,MySQL作为一种关系型数据库管理系统,已经成为开发人员开发和存储项目数据的唯一选择。MySQL还具有多种功能,如数据操作和数据库的建立与维护。该数据库具有数据共享度高、冗余度低、易于扩展等特点。MySQL在安全性方面也有自己的特点。它采用用户身份和认证技术对数据进行加密,尽量保证数据信息的可靠性。介于数据库系统的功能和强大之间,本数据库系统的设计主要采用MySQL来实现对数据的处理。本系统采用MySQL数据库,在Web应用中,MySQL是最好的选择。它在整个系统的开发、建设、运行和维护中起着极其重要的作用[7]。
2.5 B/S结构
B/S结构是指将系统客户端和服务器分开,客户端通过浏览器访问服务器进行操作。
B/S结构被广泛应用于大多数系统建设中,这种结构没有分离C/S结构客户端服务器的缺点,具有更多的优点:跨平台:B/S标准由标准化组织建立,适用于绝大多数系统建设,应用程序之间通用。维护成本低:客户端和服务器分开,减少了两端的压力,特别是客户端,对客户端设备、硬件、软件的要求都比较低,而系统需要升级或维护时,只需要在服务器端进行升级或维护,这样就可以降低相应的成本[9]。
2.6小结
本章详细的介绍了开发网上商城所需要的技术与工具,工欲善其事必先利其器,对于技术和工具了解的越多越清晰,才会在开发过程中如鱼得水。
3 需求分析
3.1系统的可行性分析
任何一个管理信息系统的开发都需要投入时间和资源,如果系统开发失败必然遭受很大损失。在着手开发系统前需要对影响系统开发的各因素进行详细分析,明确各因素的影响有多大,是否会造成系统开发失败。可行性分析的目的就是尽可能节省开发所使用的资源。对本系统的可行性分析主要从四个方面来进行分析。
3.1.1 技术可行性
在进行技术可行性分析时,考虑到的主要是确定系统在开发时所需要的技术种类有哪些,运用到的相关技术是否是完善的,是否有成功案例,是否需要购买知识产权。系统开发人员是否已经掌握了相关技术或经过简单培训学习能否尽快用于系统开发。系统运行后用户是否有能力维护系统正常运行。
以计算机为核心的管理信息系统目前已经在很多领域得到运用,技术已经比较成熟。成功案例非常多,可查阅的参考资料和网上技术论坛也很多,内容非常丰富。进行信息管理系统的开发能够使用到的工具是非常多的,使用不同种类的功能能够进行不同架构的开发。管理信息系统以数据管理为核心,所以就需要使用到数据库管理系统进行实现。在开发信息管理系统时,则需要利用关系型数据库来进行开发了。如今市面上的关系型数据库有许多种类。其中MySQL、Microsoft Mysql能够对两种架构模式都进行开发。但是相比较而言,B/S架构在使用的时候能够对发布、维护等方面更方便成本更低,是目前管理信息系统采用的主要方式。根据本系统功能需求分析更适合采用B/S架构模式。在开发B/S架构系统的工具中选择了基于Python开发技术,提供了丰富的服务器端数据管理功能,利用存储过程、触发器等可以开发丰富的后台管理功能。即能满足大型应用系统对数据库管理的需要,又能满足中小型企业乃至个人对数据简单管理需要。学校开设了软件工程、数据库原理、数据结构、网络、Python等相关课程,并做过相应的课程设计,积累了一定数据库设计、编程等方面的经验。自学了MyEclipse Python语言开发工具,做过一些小型的简单的网站。能够熟练使用以上相关技术和软件。在系统设计开发过程中难免会遇到各种问题和困难,我相信在指导老师的帮助和上网查询资料的情况下一定都能得到解决。所以本系统的开发在技术方面分析是可行的。
3.1.2 经济可行性
系统运行后所产生的直接价值、间接价值只有超过开发成本才有开发意义。有些系统的运行可能不会产生直接的经济效益,但是可能会产生间接经济效益或能够提高管理效率降低成本等其它方面价值。系统开发运行需要时间成本、经济成本、物资成本、人力资源成本等。网上商城由本人免费开发,系统开发运行使用公司现有计算机和宽带网络即可。开发工具、网站服务器和数据库服务器等大约需要花费些人民币。系统需要运行在互联网上满足各地用户的使用需要,因此需要申请IP地址和域名,大约每年需要部分费用。总体核算系统的开发运行费用不高,从成本的投入、产出的效益角度来看,系统开发成本不高所创造的价值是巨大的长期的。因此,系统满足经济可行性的分析。
3.1.3 操作可行性
这一点考虑到的是系统在使用过程中、维护管理时是否具有可操作性。运行维护是否需要非常高的专业技术知识,系统用户能否提供必要的技术人员来使用维护系统。系统的可操作性决定了系统能否正常运行。
本系统采用Python技术开发的,该技术已经被广泛应用于各网络应用中。上网用户基本都使用过该技术开发的网站,对此并不陌生。系统设计时尽可能使用常见的页面设计方案,提供充足提示信息。即使普通用户也能方便的使用系统各项功能。网上商城的运行维护需要相应人员管理,系统功能设计简单直观操作简单,只需经过简单培训就可以完成日常维护管理工作。客户操作界面也非常简单只要上过网浏览过网页能简单打字就可以使用系统。系统在设计时尽可能为用户提供方便,尽量使用常见控件完成信息的输入,并对输入信息进行校验减少出错。在使用过程中适时弹出提示信息引导用户操作。因此,本系统满足操作可行性的分析。
3.1.4 法律可行性
本人对系统进行独立的开发与设计,所使用的代码、图片、控件等是自己设计的或使用开发工具自带标准控件。从调研分析设计每个环节都是在指导老师指导下独立完成的。虽然通过网络、图书馆查阅了很多资料,但是没有直接盗用其中的代码等。使用的所有软件都是经过授权或开源免费的。系统运行后由专职人员管理,避免违法信息、违法行为出现在系统中。因此,系统的开发从法律方面分析也是可行的。
3.2系统需求分析
需求分析是系统设计的基础,对系统的功能性能、业务流程进行分析,生成系统规格说明。是系统分析设计的起点,从设计的角度为切入点来进行对用户的需求的满足与调整。凭借需求说明书才能够进行后期的测试等操作。
在完成系统的可行性分析之后,确定系统可以开发然后进行系统需求分析。可行性分析是在抽象层次压缩、简化系统具体功能设计。需求分析是更准确、更具体地描述用户需求,从而构造出目标系统模型。对需求分析必须仔细验证反复确认其正确性完整性,与用户真实需求保持一致。开发人员以此为设计开发依据,用户以此验收系统。需求分析出现错误直接导致系统设计开发的失败。
需求分析主要目的就是确定新系统需要完成哪些功能,准确表达用户真实需求。
系统设计人员在开发新系统时通常不熟悉业务流程,有些业务流程比较复杂还会涉及很多专业性规定限制。管理人员与需求用户有时用语言很难准确表达内心所想。使用业务流程图可以清楚准确的描述系统处理过程,更重要的是开发人员和需求用户都能看得懂。业务流图主要由实体输入、信息传递、信息存储和加工处理构成。此外系统设计初期用户需求可能经常变更,也可能存在不合理之处,所以经常需要对业务流图进行修改完善,对图形进行修改非常直观方便。
3.3开发目标
网上商城主要开发目标如下:
(1)对零碎化、分布散的网上商城信息进行收纳、整理,通过网络服务平台使这些信息内容更加调理,更加方便化和清晰化,让访问该系统的每个用户享受浏览的过程。
(2)生活中存在的一些现象:人员冗余。网上商城应尽量减少用户的需求压力,给他们提供省时省力省心的服务平台,降低其工作量。
(3)便于查询信息及管理信息等。
(4)通过计算机网络技术,提升解决管理问题和技术工作的质量,为用户一种规范方便的服务。
(5)该系统的面向用户为管理员和用户,系统的设计风格应该简约整洁,操作容易上手,目标信息明确,避免花里胡哨。
(6)为社会稳定和发展贡献一份力量。
3.4 系统用例分析
网上商城综合网络空间开发设计要求。目的是将传统管理方式转换为在网上管理,完成网上商城管理与展示管理的方便快捷、安全性高、交易规范做了保障,目标明确。网上商城可以将功能划分为管理员功能和用户功能。
(1)、管理员关键功能包含用户管理、商品分类管理、商品信息管理、商城论坛、系统管理、订单管理、用户信息等进行管理。管理员用例如下:
图3-1 管理员用例图
(2)、用户关键功能包含个人中心、修改密码、我的发布、我的订单、我的地址、我的收藏等等进行管理。用户用例如下:
图3-2 用户用例图
3.5系统流程分析
3.5.1 用户登录流程
登录流程实现了管理员和用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-3所示。
图3-3登录流程图
3.5.2 系统操作流程
系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。
同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-4所示。
图3-4系统操作流程图
3.6小结
网上商城旨在让用户能够轻松便捷的管理系统信息,让管理员的工作负担减轻。本章主要对系统的经济、技术、法律、市场可行性进行分析。确认可行后,对网上商城进行了需求分析和流程分析,从用户角度思考了可能会有的需求,是后续论文和应用开发的基础指导。
4 系统总体设计
4.1系统功能结构设计图
根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化,分成一个个小的容易解决的板块,然后再将小的板块继续分化成功能单一的更小模块。模块化设计方法使测试调试、维护更容易,减少模块间的干扰。各模块可以同时开发提高开发效率。本系统功能结构图:
图 4-1系统功能结构图
4.2 数据库设计与实现
在进行信息管理类型的系统的开发中,都是需要以数据库的设计为基础来进行详细的设计与开发的。
4.2.1 E-R模型简介
一般在进行数据库结构的划分时,常使用到E-R图来进行直观的展示。在一个图中有三种元素,分别为实体、属性,以及两者之间的联系。
(1)实体指的是一种具体的事务,可以是任何东西。
(2)联系指的是实体与它的属性之间的关系,可以有不同种类的联系。
(3)属性指的是一个实体本身的特点。
4.2.2 系统E-R图
E-R图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。将“管理员、商城公告、用户、商品信息”等作为实体,它们的局部E-R图,如图4-2所示:
图4-2局部E-R图
4.2.3 系统数据表设计
数据库表的设计通常是根据业务逻辑设置的。数据库模型在数据库中设计,并根据模型创建数据库表。数据库包含以下数据表来实现对数据库的存储和调用。以下是每个数据表的字段名称、类型、长度、字段说明、主键和默认值。
表4-1:商品信息评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-2:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-3:管理员表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-4:购物车表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | shangpinxinxi | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | longtext | 4294967295 | 图片 | ||
buynumber | int | 购买数量 | |||
price | double | 单价 |
表4-5:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhanghao | varchar | 200 | 账号 | ||
xingming | varchar | 200 | 姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
lianxidianhua | varchar | 200 | 联系电话 | ||
touxiang | longtext | 4294967295 | 头像 | ||
money | double | 余额 | 0 |
表4-6:系统简介
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-7:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
表4-8:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-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 | ||
shangpinbianhao | varchar | 200 | 商品编号 | ||
shangpinmingcheng | varchar | 200 | 商品名称 | ||
shangpinfenlei | varchar | 200 | 商品分类 | ||
pinpai | varchar | 200 | 品牌 | ||
guige | varchar | 200 | 规格 | ||
fengmian | longtext | 4294967295 | 封面 | ||
onelimittimes | int | 单限 | |||
alllimittimes | int | 库存 | |||
xiangqing | longtext | 4294967295 | 详情 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
discussnum | int | 评论数 | 0 | ||
price | double | 价格 | |||
storeupnum | int | 收藏数 | 0 |
表4-11:商品分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shangpinfenlei | varchar | 200 | 商品分类 |
表4-12:订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | shangpinxinxi | |
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 | 备注 | ||
sfsh | varchar | 200 | 是否审核 | ||
shhf | longtext | 4294967295 | 审核回复 | ||
role | varchar | 200 | 用户角色 |
表4-13:商城公告分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
typename | varchar | 200 | 分类名称 |
表4-14:商城公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-15:商城论坛
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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 | 状态 | ||
istop | int | 是否置顶 | 0 | ||
toptime | datetime | 置顶时间 |
4.3小结
本章刚开始总结了整个系统的总体功能,以树型图展示出来,使得看上去更加清晰明朗,而后介绍了每一个模型的属性和对数据库表的设计。
5 系统详细设计与实现
按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块一一说明如何设计和实现的。
5.1前台功能实现
5.1.1系统首页页面
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Python后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示:
图5-2系统注册界面
商品信息:在商品信息页面栏中输入商品名称、品牌、规格、价格进行查询,可以查看到商品详细信息,并根据需要进行添加到购物车、立即购买或评论操作;如图5-3所示:
图5-3商品信息详细页面
商城论坛:在商城论坛页面栏中输入标题进行查询、发布帖子,并根据需要进行评论或点赞操作;如图5-4所示:
图5-4商城论坛详细页面
5.1.2个人中心
个人中心:在个人中心页面可以对个人中心、修改密码、我的发布、我的订单、我的地址、我的收藏进行详细操作;如图5-5所示:
图5-5个人中心界面
5.2后台管理员功能实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Python后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示:
图5-6管理员登录界面
管理员进入主页面,主要功能包括对用户管理、商品分类管理、商品信息管理、商城论坛、系统管理、订单管理、用户信息等进行操作。如图5-7所示:
图5-7管理员主界面
用户管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义用户信息的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括用户的查询、添加或删除等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现用户信息的查看、修改或删除用户信息等功能。状态管理可以通过Vuex来维护,比如在store目录下定义用户信息模块的状态、突变、动作和获取器。如图5-8所示:
图5-8用户界面
管理员点击商品分类,在商品分类页面输入商品分类进行查询、添加或删除商品分类列表,并根据需要对商品分类详情信息进行查看、修改或删除操作;如图5-9所示:
图5-9商品分类界面
管理员点击商品信息,在商品信息页面输入商品名称、品牌、规格、价格进行查询、添加或删除商品信息列表,并根据需要对商品详情信息进行查看、修改、查看评论或删除操作;如图5-10所示:
图5-10商品信息界面
5.3 小结
本章介绍了系统的各个模块和实现功能,对模块下的关键功能进行了介绍,并通过图片展示了实现效果。
6 系统测试
6.1 测试的任务及目标
6.1.1 测试的任务
系统代码编写完成后需要对其正确性进行检验,以便发现存在的错误。系统通过开发人员测试后,最终要由系统的用户进行验收测试。系统采用模块化设计方法,测试时可以以模块为单位进行测试。单一模块测试通过后将模块组装起来进行整体测试,以便检测模块是否兼容。用户验收通过后系统可以试运行,验收未通过需要修改甚至重新开发。
6.1.2 测试的目标
概括地说测试就是为了发现存在的错误,但根据测试的具体目的不同需要选择不同的测试用例。使用常规信息测试检验系统处理普通业务的能力。临界信息测试检验在非常容易出现错误情况下的处理能力。异常信息测试检验系统如何应对异常情况。高负荷信息测试检验系统所能承受的峰值压力。
6.2 测试方案
测试时需要使用到测试方案,即一组输入信息和预期的正确结果。根据测试具体目的不同设计相应测试方案。测试方案的设计直接影响到测试效果。测试时对被测对像内部逻辑代码关注程度分为黑盒测试和白盒测试。每次测试涉及模块多少分为模块测试以及之后的集成测试。系统最后的整体测试的类型是黑盒测试。
6.3 实例测试
管理员登录模块测试方案如下表所示。
表6.1 管理员登陆模块
模块 | 测试用例描述 | 操作过程及数据 | 预期结果 | 用例类型 |
管 理 员 登 陆 模 块 | 打开管理员登录页面,输入正确的管理员账号信息 | 点击管理员登录链接,在管理员登录页面,按页面提示输入正确的管理员信息用户名admin,密码024admin | 管理员账号密码正确,打开管理员子系统页面 | 有校性 |
打开管理员登录页面,输入错误的管理员账号信息 | 点击管理员登录链接,在管理员登录页面,按页面提示输入错误的管理员信息用户名123,密码123 | 管理员账号不存在,系统提示账号错误,要求重新输入 | 有校性 | |
打开管理员登录页面,输入正确的管理员用户名和错误的密码信息 | 点击管理员登录链接,在管理员登录页面,按页面提示输入正确的管理员用户名admin,错误的密码123 | 系统提示密码错误,重新输入信息,不能进入管理员子系统页面 | 有校性 |
用户注册模块测试方案设计如下表所示。
表6.2 用户注册模块
模块 | 测试用例描述 | 操作过程与数据 | 预期结果 | 用例类型 |
用 户 注 册 模 块 | 在新用户注册页面,输入新的用户名 | 在注册页面输入系统中不存在的用户名,两次输入的密码要一致。 | 系统提示注册成功。 | 功能点 |
在新用户注册页面,输入已经存在的用户名 | 在注册页面输入系统中存在的用户名,两次输入的密码要一致 | 系统提示用户名已经存在,重新输入。 | 功能点 |
6.4 系统维护
平行运行一段时间后,新系统就可以正式使用,并进入系统维护阶段。系统在使用一段时间后用户需求可能会发生变化、行业法规政策可能有修改或机构部门有调整等。系统难免存在错误运行一段时间后才暴露出来,这些原因都需要对系统进行升级。
为使维护工作顺利进行在设计开发过程中就应为维护做准备工作。各阶段生成的文档资料要归档保存,程序代码相应加注说明并保留好源代码。
网上商城的开发正是满足日益增长的信息管理需要。系统开发过程中涉及到数据库设计、网页设计、逻辑处理代码编写、数据库通信等,具有很大实用价值。系统分为管理员和用户二大子系统,实现了用户管理、商品分类管理、商品信息管理、商城论坛、系统管理、订单管理、用户信息等主要功能。满足了管理人员对信息的管理,方便了用户查看网上商城信息的需要。界面设计美观简洁、功能实用操作简单方便,达到了系统开发的初衷。
设计开发过程中将在校所学知识得以实践应用,积累了一定经验。将离散的知识点有机的结合到一起,并在设计开发过程中得以灵活运用。基于Python语言的网站开发技术很多很难全部应用在一个系统中。本系统主要使用了HTML、CSS、JavaScript和Vue.js等技术。
由于本人技术水平有限,目前还存在许多未解决的问题和未添加的功能。例如,界面风格过于生硬,大片空间没有合理利用;对此次网上商城与已经非常成熟的管理系统相比还有很大差距,只能算是一个雏形。目前达到的标准仅能让作者勉强满意,未来仍需继续改进和完善上述功能,努力使其成为一个真正可以为大众使用的网上商城。
[1]童乐. 基于 Django 开发框架的在线教育系统 设计与实现[D]. 武汉: 华中师范大学,2020.
[2]齐伟. 跟老齐学 Python: Django 实战[M]. 北京: 电子工业出版社,2019.
[3] 余斌.基于Django的用户信息管理系统[J].电脑知识与技术, 2021,17(5):89-90.
[4]韦平安.基于Django的网络学习平台的开发与应用[J].山西电子技术,2023(02):71-73.
[5]李双远,李其昌.基于Django大学生网络空间安全攻防实践教学平台的设计与研究[J].吉林化工学院学报,2022,39(07):67-71.
[6]杨洪涛.基于Django的MVC框架设计与实现[J].电脑知识与技术,2023,19(04):62-65.
[7]叶欣宇.基于Django的用户唯一性安全登录系统设计[J].信息与电脑(理论版),2023,35(02):114-116.
[8]王玉芬,赵丹丹.基于Bootstrap和Django框架的Web计算器的设计与实现[J].信息与电脑(理论版),2023,35(01):143-146.
[9]郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.
[10]吴锋珍.基于主从同步的MySQL负载均衡设计与部署[J].湖南邮电职业技术学院学报,2022,21(02):40-43.
[11] 张猛. MySQL融合式空间数据库扩展研究与应用[D].中国地质大学(北京),2021.
[12]妥泽花.基于黑盒测试与白盒测试的比较探究[J].电子世界,2021(11):55-56.
[13]ZHOU D,WANG F,YE H, et al.PyCIL: a Python toolbox for class-incremental learning[J].Science China(Information Sciences),2023,66(09):291-292.
在此,我衷心地感谢所有在我毕业设计论文过程中给予我帮助和支持的老师、同学和亲朋好友。
首先,我要向我的指导老师表示最诚挚的感谢。在整个毕业设计过程中,您不仅给予了我宝贵的建议和指导,还耐心地解答了我在学术研究上遇到的困惑。您的严谨治学态度和卓越的学术造诣深深地感染和激励着我,使我在学术研究的道路上不断前行。您对我的关心和鼓励也让我更加坚定地走好每一步。我向您表示最衷心的感谢!
其次,我要感谢我的同学们。在论文写作过程中,我们互相讨论、互相学习,共同进步。特别是在遇到困难时,大家互相鼓励、互相支持,让我感受到了团队的力量。感谢你们陪伴我度过了这段难忘的时光!我还要感谢学校和实验室提供的优良的学术环境和设施。在这里,我有机会接触到前沿的科研成果,与优秀的师生共同探讨学术问题,拓宽了我的视野,丰富了我的知识体系。这些都为我顺利完成毕业设计奠定了坚实的基础。
最后,我要感谢我的家人和朋友们。在我求学的道路上,你们始终是我最坚强的后盾。感谢你们无私的付出和支持,让我能够全身心地投入到学业中。在未来的日子里,我会继续努力,不辜负你们的期望!
再次感谢所有关心和帮助过我的人,祝愿大家前程似锦,幸福安康!