django电商易购系统-计算机设计毕业源码61059

目 录

[1 绪论](#1 绪论)

1.1选题背景

1.2研究意义

1.3论文结构与章节安排

[2 电商易购系统系统分析](#2 电商易购系统系统分析)

[2.1 可行性分析](#2.1 可行性分析)

[2.2 系统流程分析](#2.2 系统流程分析)

[2.2.1 数据流程](#2.2.1 数据流程)

[3.3.2 业务流程](#3.3.2 业务流程)

[2.3 系统功能分析](#2.3 系统功能分析)

[2.3.1 功能性分析](#2.3.1 功能性分析)

[2.3.2 非功能性分析](#2.3.2 非功能性分析)

[2.4 系统用例分析](#2.4 系统用例分析)

2.5本章小结

[3 电商易购系统总体设计](#3 电商易购系统总体设计)

[3.1 系统架构设计](#3.1 系统架构设计)

[3.2 系统功能模块设计](#3.2 系统功能模块设计)

3.2.1整体功能模块设计

3.2.2用户模块设计

[3.2.3 论坛管理模块设计](#3.2.3 论坛管理模块设计)

3.2.4商城管理模块设计

3.2.5订单管理模块设计

[3.3 数据库设计](#3.3 数据库设计)

[3.3.1 数据库概念结构设计](#3.3.1 数据库概念结构设计)

[3.3.2 数据库逻辑结构设计](#3.3.2 数据库逻辑结构设计)

3.4本章小结

[4 电商易购系统详细设计与实现](#4 电商易购系统详细设计与实现)

4.1用户功能模块

[4.1.1 前台首页界面](#4.1.1 前台首页界面)

4.1.2注册界面

[4.1.3 登录界面](#4.1.3 登录界面)

4.1.4新闻资讯界面

[4.1.5 购物车界面](#4.1.5 购物车界面)

[4.1.6 商品详情界面](#4.1.6 商品详情界面)

4.1.7我的订单界面

4.2管理员功能模块

4.2.1系统用户管理界面

4.2.2系统管理界面

4.2.3订单列表管理界面

[4.2.4 购物商城管理界面](#4.2.4 购物商城管理界面)

5系统测试

5.1系统测试的目的

[5.2 系统测试用例](#5.2 系统测试用例)

[5.3 系统测试结果](#5.3 系统测试结果)

结论

参考文献

[致 谢](#致 谢)

摘要

本研究基于Django框架开发了一款功能完善的电商易购系统。该系统主要面向注册用户和管理员,包括了商品展示、用户管理、购物车、订单管理等核心功能模块。通过对系统需求的分析和设计,采用了合理的数据库结构和前后端技术实现,系统实现了用户注册登录、商品浏览和搜索、购物车管理、订单管理以及支付功能。借助Django框架的优势,系统具备良好的可扩展性和易维护性。

在系统开发过程中,充分进行了测试和优化,以确保系统的稳定性和性能。同时,注重用户体验,通过友好的界面设计和操作流程,为用户提供便捷的购物体验和订单管理服务。

本研究的电商易购系统旨在为用户提供准确、高效的在线购物和订单管理解决方案,促进电商行业的发展和用户满意度的提升。通过该系统,用户可以方便地浏览和购买各类商品,管理购物车和订单,实现支付功能。基于Django的电商易购系统的设计与实现为用户提供了便捷的购物和订单管理平台,推动了电商行业的发展,提高了用户的满意度和购物体验。

关键词:Django框架;电商易购系统。

Abstract

This study developed a fully functional e-commerce shopping system based on the Django framework. The system is mainly aimed at registered users and administrators, including core functional modules such as product display, user management, shopping cart, and order management. Through the analysis and design of system requirements, a reasonable database structure and front-end and back-end technology implementation were adopted, and the system achieved user registration and login, product browsing and search, shopping cart management, order management, and payment functions. By leveraging the advantages of the Django framework, the system has good scalability and ease of maintenance.

During the system development process, sufficient testing and optimization were conducted to ensure the stability and performance of the system. At the same time, we focus on user experience and provide users with convenient shopping experience and order management services through user-friendly interface design and operation processes.

The e-commerce e-commerce e-commerce system of this study aims to provide users with accurate and efficient online shopping and order management solutions, promote the development of the e-commerce industry, and improve user satisfaction. Through this system, users can conveniently browse and purchase various products, manage shopping carts and orders, and achieve payment functions. The design and implementation of an e-commerce e-commerce e-commerce system based on Django provides users with a convenient shopping and order management platform, promotes the development of the e-commerce industry, and improves user satisfaction and shopping experience.

Keywords ****:****Django framework; E-commerce Easy Purchase System.

1 绪论

1.1选题背景

随着互联网技术的快速发展和移动设备的普及,电子商务行业蓬勃发展,线上购物已成为人们生活中不可或缺的一部分。然而,传统的购物方式存在时间和空间上的限制,消费者对于个性化服务和便捷管理的需求日益增长。在这样的背景下,本研究选择探索电商易购系统的设计与实现,以应对消费者对于在线购物体验的不断提升需求。

电商易购系统作为电子商务领域中的重要组成部分,受到广大消费者的青睐,各类商品的需求不断增长。然而,传统的实体购物存在诸多不便,如地域限制、时间限制等,难以满足消费者的多样化需求。因此,开发一个基于Django框架的电商易购系统,旨在为消费者提供一个便捷、多样化的在线购物平台,解决传统购物方式的种种限制,提升用户的购物体验和满意度。

本研究将利用现代技术手段,构建一个功能完善、安全高效的在线购物平台,为用户提供个性化的购物体验和便捷的订单管理服务。通过电商易购系统的设计与实现,旨在促进电子商务行业的发展,满足消费者对于在线购物的需求,为消费者和商家搭建一个交流互动的平台,实现更加智能、便捷的在线购物体验。

1.2研究意义

随着互联网技术的飞速发展和电子商务行业的兴起,电商易购系统的设计与实现具有重要的研究意义和实践价值。首先,电商易购作为时尚产业中备受关注的产品之一,具有广泛的市场需求和潜在商业机会。通过开发电商易购系统,可以促进电商市场的发展,提升电商行业的竞争力,推动时尚产业的进步和创新。

其次,电商易购系统的设计与实现能够满足消费者日益增长的个性化需求和便捷购物体验的迫切需求。传统的实体零售店面对面的购物方式存在时间和空间上的限制,而电商易购系统的推出将为消费者提供24/7不间断的在线购物体验,解决传统购物方式的不便之处,提升用户的购物体验和满意度。

此外,电商易购系统的设计与实现也将推动电子商务行业的发展。作为一种新兴的电子商务模式,电商易购系统将引领电子商务行业向更智能、便捷、个性化的方向发展,推动行业技术和服务水平的提升,激发更多创新商业模式的探索和实践,为电子商务行业注入新的活力和动力。

总之,电商易购系统的设计与实现不仅能够满足消费者对购物的需求,提升用户体验和满意度,还能推动电商市场和电子商务行业的发展,促进时尚产业的繁荣与创新。因此,该研究具有重要的研究意义和实践价值,将为相关领域的发展和进步提供有力支持和推动。

1.3论文结构与章节安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题研究的背景,研究意义和本文的主要工作。

第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。

第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。

第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。

第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 电商易购系统系统分析

系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。

2.1 可行性分析

(1)经济可行性:

经济可行性在此仅代表网站的运维成本,开发成本不在此考虑。

目前该模式下的电商易购系统的数量日益增多,网购变得平民化普及化用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。

所以经济可行性没有问题。

(2)操作可行性:

此次项目设计参考了几个该模式下网站的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。

因此操作可行性也没有问题。

(3)技术可行性:

技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。

当使用Django基于Python开发电子商务系统时,可以满足所有的需求。我选择了Python作为开发语言,搭配使用Django框架和MySQL数据库来运行整个系统。

综上所述技术可行性也没有问题。

(4)法律可行性:

从开发者角度来看,Django基于Python的电商易购系统是网上开源且免费的,在知识产权方面不会产生任何法律纠纷。

从用户使用角度来看,只要不再系统上贩卖违禁品,对系统做出条约协议,杜绝非法支付即可。

综上所述法律可行性也没有问题。

2.2 系统流程分析

2.2.1 数据流程

电商易购系统主要的目的就是实现对商品的在线选购,图2-1就是系统的数据流图。

图2-1商品购买操作展开图

3.3.2 业务流程

分析完系统的数据流,接下来我们来看系统的业务流程,图2-2就是业务流程图:

图2-2业务流程图

2.3 系统功能分析

2.3.1 功能性分析

按照电商易购系统的角色,我划分为了注册用户模块和管理员管理模块这两大部分。

注册用户管理模块:

  1. 首页:注册用户登陆后,将首先看到首页。这里集中展示了通知公告、轮播图以及商品热门列表。商品热门列表根据用户的点击信息动态更新,点击数高的商品会优先展示,帮助用户快速找到受欢迎的商品。
  2. 通知公告:注册用户可以查看系统发布的通知公告,及时获取平台的最新动态和重要信息。
  3. 新闻资讯:用户可以浏览各类新闻资讯,对于感兴趣的内容,可以进行点赞、收藏和评论,与其他用户交流看法。
  4. 购物商城:购物商城是注册用户的核心功能区域。用户可以查看详细的商品列表和商品详情,选择心仪的商品进行修改数量后立即购买或加入购物车。在购物过程中,用户可以查看商品的销售数量,并对商品进行点赞和评论。
  5. 商城管理:商城管理模块允许注册用户管理个人的购物信息。用户可以查看购物车中的商品、已下的订单以及保存的收货地址。
  6. 我的账户:在个人账户中,注册用户可以修改个人资料和密码,确保账户安全。
  7. 个人中心:订单配送:注册用户可以在个人中心查看自己的订单配送情况。用户可以进行查询、重置、查看配送详情等操作。对于已收到的订单,用户可以进行签收。此外,用户还可以通过配送状态和签收状态进行搜索,快速找到特定状态的订单。付款后的订单会等待管理员确认并发起配送,用户可以在此界面查看配送详情并签收。
  8. 收藏:注册用户可以查看自己收藏的信息,包括商品、资讯等。对于不再需要的收藏,用户可以选择删除。

管理员管理模块:

  1. 登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
  2. 后台首页:管理员可以通过后台首页查看商品销售金额统计和商品销售数量的折线图,以直观了解销售趋势和业绩情况。
  3. 系统用户管理:作为管理员,您可以对系统用户进行增删改查操作,包括注册用户和管理员账号。同时,您还可以对用户账号状态进行管控,确保系统的安全和稳定运行。
  4. 系统管理:管理员可以管理轮播图,包括增删改查和查看详情等操作。这对于维护网站的形象和展示重要信息非常有帮助。
  5. 通知公告管理:管理员可以发布通知公告,并进行增删改查和查看详情等操作。这对于向用户传达重要信息和促销活动非常有效。
  6. 资源管理:管理员可以管理新闻资讯和资讯分类。您可以进行增删改查和查看详情等操作,并通过标题、标签、分类等条件进行搜索。同时,您还可以管理用户评论等相关信息。
  7. 商城管理:管理员可以对购物商城进行增删改查和查看详情等操作。您可以管理商品库存数量,确保库存充足,防止用户下单时库存不足。同时,您还可以管理订单列表和订单配送,包括查询、重置、删除和查看详情等操作。通过订单号、商品名称、联系人姓名、状态等条件进行搜索,方便管理员快速定位和处理订单。管理员还可以更改配送状态和签收状态,确保订单配送和签收的顺利进行。

2.3.2 非功能性分析

电商易购系统的非功能性需求比如电商易购系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

表3-1电商易购系统非功能需求表

|------|-----------------------------------------|
| 安全性 | 主要指电商易购系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
| 可靠性 | 可靠性是指电商易购系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响电商易购系统占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着电商易购系统的页面展示内容进行操作,就可以了。 |
| 可维护性 | 电商易购系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |

2.4 系统用例分析

通过2.3功能的分析,得出了本电商易购系统的用例图:

注册用户角色用例如图2-3所示。

图2-3 电商易购系统注册用户角色用例图

web后台管理上的管理员是维护整个电商易购系统中所有数据信息的。管理员角色用例如图2-4所示。

图2-5电商易购系统管理员角色用例图

2.5本章小结

本章主要通过对电商易购系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个电商易购系统要实现的功能。同时也为电商易购系统的代码实现和测试提供了标准。

3 电商易购系统总体设计

本章主要讨论的内容包括电商易购系统的功能模块设计、数据库系统设计。

3.1 系统架构设计

本电商易购系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1电商易购系统系统架构设计图

表现层(UI):又称UI层,主要完成本电商易购系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本电商易购系统时的舒适度。UI的界面设计也要适应不同版本的电商易购系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本电商易购系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本电商易购系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本电商易购系统的数据存储和管理功能。

3.2 系统功能模块设计

3.2.1整体功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本电商易购系统中的用例。那么接下来就要开始对本电商易购系统的架构、主要功能和数据库开始进行设计。电商易购系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。

图3-2 电商易购系统功能模块图

3.2.2用户模块设计

后台管理者能够实现对前台注册的用户增删改查操作,用户模块结构图如下图:

图3-3用户模块结构图

3.2.3 论坛管理模块设计

电商易购系统是一个交流性质的公开平台,用户可以在论坛上交流,增加用户之间的互动性。但是同时也为了更好的规范留言的内容,给予管理员删除不合适的帖子的功能,所以需要专门设计一个论坛管理模块,具体的结构图如下:

图3-4论坛模块结构图

3.2.4商城管理模块设计

电商易购系统是中需要存储不少商品信息,其模块功能结构,具体的结构图如下:

图3-5商城模块结构图

3.2.5订单管理模块设计

电商易购系统最重要的一个功能就是购买,其模块功能结构,具体的结构图如下:

图3-5订单模块结构图

3.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1 数据库概念结构设计

下面是整个电商易购系统中主要的数据库表总E-R实体关系图。

图3-6 电商易购系统总E-R关系图

下面根据电商易购系统的数据库总E-R关系图可以得出电商易购系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

图3-7注册用户信息E-R关系图

图3-8 购物商城信息E-R关系图

图3-9 订单信息E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中电商易购系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

|----|-------------|-----------|-------|-----|------|----|-------------------|------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | | 临时访问牌ID |
| 2 | token | varchar | 64 | 0 | Y | N | | 临时访问牌 |
| 3 | info | text | 65535 | 0 | Y | N | | |
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |

表address (收货地址:)

|----|-------------|-----------|-----|-----|------|----|-------------------|----------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | address_id | int | 10 | 0 | N | Y | | 收货地址: |
| 2 | name | varchar | 32 | 0 | Y | N | | 姓名: |
| 3 | phone | varchar | 13 | 0 | Y | N | | 手机: |
| 4 | postcode | varchar | 8 | 0 | Y | N | | 邮编: |
| 5 | address | varchar | 255 | 0 | N | N | | 地址: |
| 6 | user_id | mediumint | 8 | 0 | N | N | | 用户ID:[0,8388607]用户获取其他与用户相关的数据 |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |

表article (文章:用于内容管理系统的文章)

|----|-------------|-----------|------------|-----|------|----|-------------------|------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | article_id | mediumint | 8 | 0 | N | Y | | 文章id:[0,8388607] |
| 2 | title | varchar | 125 | 0 | N | Y | | 标题:[0,125]用于文章和html的title标签中 |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | | 来源:[0,255]文章的出处 |
| 9 | url | varchar | 255 | 0 | Y | N | | 来源地址:[0,255]用于跳转到发布该文章的网站 |
| 10 | tag | varchar | 255 | 0 | Y | N | | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | | 正文:文章的主体内容 |
| 12 | img | varchar | 255 | 0 | Y | N | | 封面图 |
| 13 | description | text | 65535 | 0 | Y | N | | 文章描述 |

表article_type (文章分类)

|----|-------------|-----------|-------|-----|------|----|-------------------|-------------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | | 分类ID:[0,10000] |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | | 分类名称:[2,16] |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 5 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]描述该分类的作用 |
| 6 | icon | text | 65535 | 0 | Y | N | | 分类图标: |
| 7 | url | varchar | 255 | 0 | Y | N | | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表auth (用户权限管理)

|----|----------------|-----------|-------|-----|------|----|-------------------|---------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | | 授权ID: |
| 2 | user_group | varchar | 64 | 0 | Y | N | | 用户组: |
| 3 | mod_name | varchar | 64 | 0 | Y | N | | 模块名: |
| 4 | table_name | varchar | 64 | 0 | Y | N | | 表名: |
| 5 | page_title | varchar | 255 | 0 | Y | N | | 页面标题: |
| 6 | path | varchar | 255 | 0 | Y | N | | 路由路径: |
| 7 | position | varchar | 32 | 0 | Y | N | | 位置: |
| 8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 13 | field_add | text | 65535 | 0 | Y | N | | 添加字段: |
| 14 | field_set | text | 65535 | 0 | Y | N | | 修改字段: |
| 15 | field_get | text | 65535 | 0 | Y | N | | 查询字段: |
| 16 | table_nav_name | varchar | 500 | 0 | Y | N | | 跨表导航名称: |
| 17 | table_nav | varchar | 500 | 0 | Y | N | | 跨表导航: |
| 18 | option | text | 65535 | 0 | Y | N | | 配置: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表cart (购物车)

|----|-------------|-----------|-----|-----|------|----|-------------------|----------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | cart_id | int | 10 | 0 | N | Y | | 购物车ID: |
| 2 | title | varchar | 64 | 0 | Y | N | | 标题: |
| 3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
| 4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
| 8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
| 9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
| 10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
| 11 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 12 | goods_id | mediumint | 8 | 0 | N | N | | 商品id:[0,8388607] |
| 13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |

表collect (收藏)

|----|--------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | | 收藏ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 4 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | | 标题: |
| 7 | img | varchar | 255 | 0 | Y | N | | 封面: |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表comment (评论)

|----|--------------|-----------|------------|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | | 评论ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | | 内容: |
| 5 | nickname | varchar | 255 | 0 | Y | N | | 昵称: |
| 6 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:[0,255] |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 10 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |

表goods (商品信息)

|----|-----------------|-----------|------------|-----|------|----|-------------------|------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | goods_id | mediumint | 8 | 0 | N | Y | | 产品id:[0,8388607] |
| 2 | title | varchar | 125 | 0 | Y | N | | 标题:[0,125]用于产品和html的<title>标签中 |
| 3 | img | text | 65535 | 0 | Y | N | | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
| 8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 9 | type | varchar | 64 | 0 | N | N | | 商品分类: |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | | 正文:产品的主体内容 |
| 12 | img_1 | text | 65535 | 0 | Y | N | | 主图1: |
| 13 | img_2 | text | 65535 | 0 | Y | N | | 主图2: |
| 14 | img_3 | text | 65535 | 0 | Y | N | | 主图3: |
| 15 | img_4 | text | 65535 | 0 | Y | N | | 主图4: |
| 16 | img_5 | text | 65535 | 0 | Y | N | | 主图5: |
| 17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 19 | customize_field | text | 65535 | 0 | Y | N | | 自定义字段 |
| 20 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 21 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |

表goods_type (商品类型)

|----|--------------|-----------|-----|-----|------|----|-------------------|--------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | int | 10 | 0 | N | Y | | 商品分类ID: |
| 2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 3 | name | varchar | 255 | 0 | Y | N | | 商品名称: |
| 4 | desc | varchar | 255 | 0 | Y | N | | 描述: |
| 5 | icon | varchar | 255 | 0 | Y | N | | 图标: |
| 6 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 7 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表hits (用户点击)

|----|--------------|-----------|-----|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |

表logistics_delivery (物流配送)

|----|--------------------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | logistics_delivery_id | int | 10 | 0 | N | Y | | 物流配送ID |
| 2 | order_number | varchar | 64 | 0 | Y | N | | 订单号 |
| 3 | product_name | varchar | 64 | 0 | Y | N | | 商品名称 |
| 4 | purchase_quantity | varchar | 64 | 0 | Y | N | | 购买数量 |
| 5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
| 6 | the_date_of_issuance | date | 10 | 0 | Y | N | | 发货日期 |
| 7 | delivery_number | varchar | 30 | 0 | Y | N | | 配送订单 |
| 8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 9 | shipping_address | varchar | 64 | 0 | Y | N | | 收货地址 |
| 10 | delivery_status | varchar | 64 | 0 | Y | N | | 配送状态 |
| 11 | signing_status | varchar | 64 | 0 | Y | N | | 签收状态 |
| 12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 13 | contact_name | varchar | 255 | 0 | Y | N | | 联系人名字 |
| 14 | merchant_id | int | 10 | 0 | Y | N | | 商家id |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表notice (公告)

|----|-------------|-----------|------------|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | | 公告id: |
| 2 | title | varchar | 125 | 0 | N | N | | 标题: |
| 3 | content | longtext | 2147483647 | 0 | Y | N | | 正文: |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表order (订单)

|----|-----------------|-----------|-------|-----|------|----|-------------------|--------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | order_id | int | 10 | 0 | N | Y | | 订单ID: |
| 2 | order_number | varchar | 64 | 0 | Y | N | | 订单号: |
| 3 | goods_id | mediumint | 8 | 0 | N | N | | 商品id:[0,8388607] |
| 4 | title | varchar | 32 | 0 | Y | N | | 商品标题: |
| 5 | img | varchar | 255 | 0 | Y | N | | 商品图片: |
| 6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
| 7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
| 8 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
| 10 | norms | varchar | 255 | 0 | Y | N | | 规格: |
| 11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 12 | contact_name | varchar | 32 | 0 | Y | N | | 联系人姓名: |
| 13 | contact_email | varchar | 125 | 0 | Y | N | | 联系人邮箱: |
| 14 | contact_phone | varchar | 11 | 0 | Y | N | | 联系人手机: |
| 15 | contact_address | varchar | 255 | 0 | Y | N | | 收件地址: |
| 16 | postal_code | varchar | 9 | 0 | Y | N | | 邮政编码: |
| 17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
| 18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 21 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 0 | Y | N | | 订单备注 |
| 24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |

表praise (点赞)

|----|--------------|-----------|-----|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |

表registered_users (注册用户)

|----|---------------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | registered_users_id | int | 10 | 0 | N | Y | | 注册用户ID |
| 2 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 3 | user_gender | varchar | 64 | 0 | Y | N | | 用户性别 |
| 4 | user_phone_number | varchar | 16 | 0 | Y | N | | 用户电话 |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表shopping_mall (购物商城)

|----|------------------------|-----------|------------|-----|------|----|-------------------|--------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | shopping_mall_id | int | 10 | 0 | N | Y | | 购物商城ID |
| 2 | product_specifications | varchar | 64 | 0 | Y | N | | 商品规格 |
| 3 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 4 | cart_title | varchar | 125 | 0 | Y | N | | 标题:[0,125]用于产品html的标签中 |
| 5 | cart_img | text | 65535 | 0 | Y | N | | 封面图:用于显示于产品列表页 |
| 6 | cart_description | varchar | 255 | 0 | Y | N | | 描述:[0,255]用于产品规格描述 |
| 7 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 8 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 9 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 10 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 11 | cart_content | longtext | 2147483647 | 0 | Y | N | | 正文:产品的主体内容 |
| 12 | cart_img_1 | text | 65535 | 0 | Y | N | | 主图1: |
| 13 | cart_img_2 | text | 65535 | 0 | Y | N | | 主图2: |
| 14 | cart_img_3 | text | 65535 | 0 | Y | N | | 主图3: |
| 15 | cart_img_4 | text | 65535 | 0 | Y | N | | 主图4: |
| 16 | cart_img_5 | text | 65535 | 0 | Y | N | | 主图5: |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表slides (轮播图)

|----|-------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | | 轮播图ID: |
| 2 | title | varchar | 64 | 0 | Y | N | | 标题: |
| 3 | content | varchar | 255 | 0 | Y | N | | 内容: |
| 4 | url | varchar | 255 | 0 | Y | N | | 链接: |
| 5 | img | varchar | 255 | 0 | Y | N | | 轮播图: |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

表upload (文件上传)

|----|-----------|---------|-----|-----|------|----|-----|------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | | 上传ID |
| 2 | name | varchar | 64 | 0 | Y | N | | 文件名 |
| 3 | path | varchar | 255 | 0 | Y | N | | 访问路径 |
| 4 | file | varchar | 255 | 0 | Y | N | | 文件路径 |
| 5 | display | varchar | 255 | 0 | Y | N | | 显示顺序 |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | | 文件夹 |
| 8 | type | varchar | 32 | 0 | Y | N | | 文件类型 |

表user (用户账户:用于保存用户登录信息)

|----|--------------|-----------|-----|-----|------|----|-------------------|-------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | mediumint | 8 | 0 | N | Y | | 用户ID:[0,8388607]用户获取其他与用户相关的数据 |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | | 所在用户组:[0,32767]决定用户身份和权限 |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | | 用户名:[0,16]用户登录时所用的账户名称 |
| 8 | nickname | varchar | 16 | 0 | Y | N | | 昵称:[0,16] |
| 9 | password | varchar | 64 | 0 | N | N | | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
| 10 | email | varchar | 64 | 0 | Y | N | | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:[0,255] |
| 13 | open_id | varchar | 255 | 0 | Y | N | | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 15 | vip_level | varchar | 255 | 0 | Y | N | | 会员等级 |
| 16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |

表user_group (用户组:用于用户前端身份和鉴权)

|----|--------------|-----------|-----|-----|------|----|-------------------|----------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | | 用户组ID:[0,8388607] |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
| 3 | name | varchar | 16 | 0 | N | N | | 名称:[0,16] |
| 4 | description | varchar | 255 | 0 | Y | N | | 描述:[0,255]描述该用户组的特点或权限范围 |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |

3.4本章小结

整个电商易购系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 电商易购系统详细设计与实现

电商易购系统的详细设计与实现主要是根据前面的电商易购系统的需求分析和电商易购系统的总体设计来设计页面并实现业务逻辑。主要从电商易购系统界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入电商易购系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容,其主界面展示如下图4-1所示。

图4-1 前台首页界面图

4.1.2注册界面

不是电商易购系统中正式用户的是可以在线进行注册的,如果你没有本电商易购系统的账号的话,添加"注册",当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击"注册"按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2 前台注册界面图

注册逻辑代码如下:

print("===================注册=====================")

userService = service_select("user")

body = ctx.body

if "username" not in body and body["username"] == '':

return ctx.response(json.dumps({

"error": {

"code": 70000,

"message": "用户名不能为空",

}

}, ensure_ascii=False))

if "user_group" not in body and body["user_group"] == '':

return ctx.response(json.dumps({

"error": {

"code": 70000,

"message": "用户组不能为空",

}

}, ensure_ascii=False))

if "password" not in body and body["password"] == '':

return ctx.response(json.dumps({

"error": {

"code": 70000,

"message": "密码不能为空",

}

}, ensure_ascii=False))

post_param = body

post_param['nickname'] = body["nickname"] or ""

post_param['password'] = md5hash(body["password"])

obj = userService.Get_obj({"username": post_param['username']}, {"like": False})

if obj:

return ctx.response(json.dumps({

"error": {

"code": 70000,

"message": "用户名已存在",

}

}, ensure_ascii=False))

ret = {

"error": {

"code": 70000,

"message": "注册失败",

}

}

bl = userService.Add(post_param)

if bl:

ret = {

"result": {

"bl": True,

"message": "注册成功"

}

}

return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.3 登录界面

电商易购系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击"登录"按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到电商易购系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3登录界面图

登录的逻辑代码如下所示:

def Login(self, ctx):

print("===================登录=====================")

ret = {

"error": {

"code": 70000,

"message": "账户不存在",

}

}

body = ctx.body

password = md5hash(body["password"]) or ""

obj = service_select("user").Get_obj(

{"username": body["username"]}, {"like": False}

)

if obj:

user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})

if user_group and user_group['source_table'] != '':

user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']}, {"like": False})

if user_obj['examine_state'] == '未通过':

ret = {

"error": {

"code": 70000,

"message": "账户未通过审核",

}

}

return ret

if user_obj['examine_state'] == '未审核':

ret = {

"error": {

"code": 70000,

"message": "账户未审核",

}

}

return ret

if obj["state"] == 1:

if obj["password"] == password:

timeout = timezone.now()

timestamp = int(time.mktime(timeout.timetuple())) * 1000

token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))

ctx.request.session[token] = obj["user_id"]

service_select("access_token").Add(

{"token": token, "user_id": obj["user_id"]}

)

obj["token"] = token

ret = {

"result": {"obj": obj}

}

else:

ret = {

"error": {

"code": 70000,

"message": "密码错误",

}

}

else:

ret = {

"error": {

"code": 70000,

"message": "用户账户不可用,请联系管理员",

}

}

return ctx.response(json.dumps(ret, ensure_ascii=False))

4.1.4新闻资讯界面

用户可以浏览各类新闻资讯,对于感兴趣的内容,可以进行点赞、收藏和评论,与其他用户交流看法,新闻资讯界面如下图4-4所示。

图4-4新闻资讯界面图

4.1.5 购物车界面

当用户点击导航栏上的"购物车"菜单后,会出现自己加入购物车的商品列表,在购物车页面可以对商品删除、修改商品的数量,选择部分或者全选进行购买,购物车界面如下图4-5所示。

图4-5购物车界面图

4.1.6 商品详情界面

当访客点击了任意商品后将会进入该款商品的详情界面,可以了解到该商品的图片信息、商品信息、价钱信息等,同时可以对该商品进行立即购买+收藏+点赞+评论,商品详情展示页面如图4-6所示。

图4-6 商品详情界面图

4.1.7我的订单界面

当用户点击"我的订单"链接后就进入自己购买的订单的界面展示,界面如下图4-7所示。

图4-7 我的订单界面图

4.2管理员功能模块

4.2.1系统用户管理界面

作为管理员,您可以对系统用户进行增删改查操作,包括注册用户和管理员账号。同时,您还可以对用户账号状态进行管控,确保系统的安全和稳定运行。界面如下图4-8所示。

图4-8系统用户管理界面图

系统用户管理关键代码如下:

WSGI_APPLICATION = "app.wsgi.application"

DATABASES = {

"default": {

"ENGINE": "django.db.backends.mysql",

"NAME": "project93355",

"USER": "root",

"PASSWORD": "root",

"HOST": "127.0.0.1",

"PORT": "3306",

}

}

4.2.2系统管理界面

管理员可以管理轮播图,包括增删改查和查看详情等操作。这对于维护网站的形象和展示重要信息非常有帮助,界面如下图4-9所示。

图4-9系统管理界面图

系统管理关键代码如下:

from hashlib import md5

def md5hash(key):

input_name = md5()

input_name.update(key.encode("utf-8"))

return input_name.hexdigest()

4.2.3订单列表管理界面

管理员点击"商城管理"按钮,选择订单列表菜单,可以对订单进行管控,界面如下图4-10所示。

图4-10订单列表管理界面图

订单列表管理关键代码如下:

def Add(self, ctx):

body = ctx.body

unique = self.config.get("unique")

obj = None

if unique:

qy = {}

for i in range(len(unique)):

key = unique[i]

qy[key] = body.get(key)

obj = self.service.Get_obj(qy)

if not obj:

error = self.Add_before(ctx)

if error["code"]:

return {"error": error}

error = self.Events("add_before", ctx, None)

if error["code"]:

return {"error": error}

result = self.service.Add(body, self.config)

if self.service.error:

return {"error": self.service.error}

res = self.Add_after(ctx, result)

if res:

result = res

res = self.Events("add_after", ctx, result)

if res:

result = res

return {"result": result}

else:

return {"error": {"code": 10000, "message": "已存在"}}

4.2.4 购物商城管理界面

管管理员可以对购物商城进行增删改查和查看详情等操作。您可以管理商品库存数量,确保库存充足,防止用户下单时库存不足,购物商城管理界面如下图4-11所示。

图4-11购物商城管理界面图

5系统测试

5.1系统测试的目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统测试用例

系统测试包括:用户登录功能测试、商品展示功能测试、商品添加、商品搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

|------|----------------------------------------|
| 用例名称 | 用户登录系统 |
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |

商品查看功能测试:

表5-2 商品查看功能测试表

|------|-------------|
| 用例名称 | 商品查看 |
| 目的 | 测试商品查看功能 |
| 前提 | 用户登录 |
| 测试流程 | 点击商品列表 |
| 预期结果 | 可以查看到所有商品信息 |
| 实际结果 | 实际结果与预期结果一致 |

管理员添加商品界面测试:

表5-3 管理员添加商品界面测试表

|------|--------------------------------------|
| 用例名称 | 商品发布测试用例 |
| 目的 | 测试商品发布功能 |
| 前提 | 用户正常登录情况下 |
| 测试流程 | 1)点击商城管理,然后点击购物商城添加后并填写信息。 2)点击进行提交。 |
| 预期结果 | 提交以后,页面首页会显示新的商品信息 |
| 实际结果 | 实际结果与预期结果一致 |

商品搜索功能测试:

表5-4商品搜索功能测试表

|------|--------------------------|
| 用例名称 | 商品搜索测试 |
| 目的 | 测试商品搜索功能 |
| 前提 | 无 |
| 测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
| 预期结果 | 页面显示包含有搜索关键字的商品 |
| 实际结果 | 实际结果与预期结果一致 |

密码修改功能测试:

表5-5 密码修改功能测试表

|------|---------------------------|
| 用例名称 | 密码修改测试用例 |
| 目的 | 测试管理员密码修改功能 |
| 前提 | 管理员用户正常登录情况下 |
| 测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
| 预期结果 | 使用新的密码可以登录 |
| 实际结果 | 实际结果与预期结果一致 |

5.3 系统测试结果

通过编写电商易购系统的测试用例,已经检测完毕用户登录模块、商品查看模块、商品添加模块、商品搜索模块、密码修改功能测试,通过这5大模块为电商易购系统的后期推广运营提供了强力的技术支撑。

结论

在设计与开发电商易购系统时,我充分准备并学习了大量文献资料,积累了宝贵的方法和设计思路。我选择了 Django 框架作为开发技术,搭配 MySQL 数据库,这些都是我比较熟悉的技术栈,而我对 Django 的学习和实践正是通过不断摸索与积累经验而得来的。

在整个开发过程中,老师和同学们给予了我很大的帮助与指导,正是有了他们的支持,我才能够如期完成这个系统。这个过程中,我收获颇丰,也意识到系统仍有改进的空间。由于个人专业知识的限制,系统并非完美无缺,但我希望未来有机会能够将其真正投入使用。

总的来说,通过基于 Django 的电商易购系统设计与实现,我深刻体会到了经验积累和充分准备的重要性,这对于项目的顺利完成至关重要。希望未来能不断完善自己,让更多优秀的技术得以应用于实践中。

参考文献

[1]Mao Z ,Niu J ,Zhao J , et al. ECMpy 2.0: A Python package for automated construction and analysis of enzyme-constrained models [J]. Synthetic and Systems Biotechnology, 2024, 9 (3): 494-502.

[2]Lestiyani A ,Joko T ,Holford P , et al. Natural Infection of Murraya paniculata and Murraya sumatrana with CLas in Java. [J]. Plant disease, 2024,

[3]Online Job Portal using Django [J]. International Journal of Innovative Science and Modern Engineering (IJISME), 2024, 12 (1/):

[4]张良峰. 基于Django和Vue的低代码平台构建 [J]. 数字通信世界, 2024, (01): 45-48.

[5]蔡宝玉,王夏,孙小江. 基于计算机增强现实技术的跨境购物网站建设分析 [J]. 中国多媒体与网络教学学报(中旬刊), 2024, (01): 9-12.

[6]龙芳,吴勇灵. 微信小程序购物系统的设计与实现 [J]. 现代信息科技, 2023, 7 (23): 25-30.

[7]雒美敏,毋育新. 中日人机对话系统语言产出对比研究------以网络购物场景为例 [J]. 日语学习与研究, 2023, (05): 102-114. DOI:10.13508/j.cnki.jsr.2023.05.008.

[8]Ghoshal A . Oracle's MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,

[9]邵阳阳,徐子良,姜玉波,等. 基于LFM算法的SpringCloud分布式购物系统 [J]. 聊城大学学报(自然科学版), 2023, 36 (06): 27-34.

[10]刘彩萍. 探讨基于微信小程序的网上购物系统的设计与实现 [J]. 数字技术与应用, 2023, 41 (08): 182-184.

[11]吴永慧. 基于VR虚拟现实技术的柳州茶文化电商购物系统设计 [J]. 丝网印刷, 2023, (11): 98-100.

[12]杨强强,宋子诚,姜凌昊,等. 基于Jetson nano的跟随购物小车系统的设计与实现 [J]. 电脑知识与技术, 2023, 19 (04): 7-9.

[13]薛苏玲,岳鸿波,郑子恬,等. 基于线上购物的Linux系统安全配置 [J]. 网络安全技术与应用, 2023, (01): 9-11.

[14]崔祥. 基于Web的在线购物系统设计 [J]. 无线互联科技, 2022, 19 (24): 71-74.

[15]钟梅英,周宝航,刘娟,等. 基于二维码和Android平台的购物记录管理系统设计 [J]. 信息系统工程, 2022, (10): 50-53.

[16]任建新,王一鸣,李鑫,等. 基于Java Web的智慧商城购物系统设计 [J]. 信息技术与信息化, 2022, (07): 23-27.

[17]尚志豪,单超颖,王佳琦,等. 基于物联网技术的智能购物车系统 [J]. 电子元器件与信息技术, 2022, 6 (07): 60-64.

[18]朱彦龙. 某电商系统中购物子系统的设计与实现[D]. 北京邮电大学, 2022.

[19]高瞩,张雨璇. 基于服务设计的超市自助购物系统设计 [J]. 时尚设计与工程, 2022, (02): 1-7.

[20]曾怡苗. 基于数据库的网上超市购物系统的设计与实现 [J]. 自动化应用, 2022, (01): 67-70.

致 谢

时光荏苒,岁月如梭。转眼间,大学生活已接近尾声,面对离别与结束,人们总是充满不舍与迷茫。我亦如此,仍清晰记得那年秋天,我怀着激动的心情提前一天抵达学校,站在巍峨的校门前,内心充满期待:这里,将是我新生活的起点吗?阳光灿烂的日子,学校的欢迎仪式热烈而庄重,我面对着一个个笑容满面的同学,仿佛阳光温暖地照进了我心底。那一天,我结识了可爱的室友,我们携手共度了这段难忘的时光。

如今,当我凝视这篇论文的致谢部分,不禁再次自问:我们真的就要说再见了吗?感慨涌上心头,难以言表。回想起初来乍到时的我,曾担心工科学校会过于严谨,缺乏温情。然而,随着对学校的逐渐了解,我发现了她的美丽与柔情,并深深地爱上了这个校园。然而,时光匆匆,我还未来得及细细品味她的美好,便要与她告别。但她留给我的回忆,将永远铭刻在我心中。或许真正离别的那天,我的眼中会盈满泪水,但那不是因为悲伤,而是因为我希望将她的容颜深深映在我的泪水里,刻在我的心中。

在此,我要向我的老师们致以衷心的感谢,是你们传授了我知识和为人处世的道理;感谢我的室友们,是你们陪伴我走过了这段时光;感谢每一位关心和支持我的人。愿我们都能勇往直前,不负韶华,追逐梦想,直至春山荒尽处。

点赞+收藏+关注 → 私信领取本源代码、数据库

相关推荐
TheITSea29 分钟前
云服务器宝塔安装静态网页 WordPress、VuePress流程记录
java·服务器·数据库
AuroraI'ncoding37 分钟前
SpringMVC接收请求参数
java
九圣残炎1 小时前
【从零开始的LeetCode-算法】3354. 使数组元素等于零
java·算法·leetcode
天天扭码2 小时前
五天SpringCloud计划——DAY1之mybatis-plus的使用
java·spring cloud·mybatis
程序猿小柒2 小时前
leetcode hot100【LeetCode 4.寻找两个正序数组的中位数】java实现
java·算法·leetcode
不爱学习的YY酱2 小时前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
丁总学Java2 小时前
Maven项目打包,com.sun.tools.javac.processing
java·maven
kikyo哎哟喂3 小时前
Java 代理模式详解
java·开发语言·代理模式
Doker 多克3 小时前
Spring AI 框架使用的核心概念
人工智能·spring·chatgpt
duration~3 小时前
SpringAOP模拟实现
java·开发语言