Bootstrap

(附源码)python兴农购物网站系统 毕业设计38256

Django兴农购物网站系统

摘  要

 助农工作是当前我国全面建成小康社会的重点工作,由于我国农村地域广大,贫困人口多,区域差异大,因此,不同区域的扶贫方法也是不一样的。近年来,随着网络的普及。许多农村地区物产丰富,但由于销售渠道不畅等原因,导致农民处于无法致富的贫困状态,而兴农购物网站系统恰好能解决这个问题,农户能在系统上进行农产品发布,产品销售,用户也可以在系统进行购买,还可以进行溯源信息查看,对于扩大内需和促进农产品的销售发展有着现实而深远的意义。

兴农购物网站系统主要是提供给用户一个可以购买农产品的平台,本文主要是采用Python语言和MySQL数据库技术,基于Django框架作为开发平台,完成一个兴农购物网站系统。

关键词:Django框架;购物网站;MySQL数据库

Django Xingnong Shopping Website System

ABSTRACT

The work of assisting agriculture is currently the key task for China to fully build a moderately prosperous society. Due to the vast rural area, large numbers of poor people, and large regional differences, the poverty alleviation methods in different regions are also different. In recent years, with the popularization of the network. Many rural areas are rich in products, but due to poor sales channels and other reasons, farmers are in a poverty situation where they cannot become rich. The Xingnong shopping website system can precisely solve this problem. Farmers can publish and sell agricultural products on the system, and users can also purchase products on the system. It can also conduct traceability information review, which has practical and far-reaching significance for expanding domestic demand and promoting the sales development of agricultural products.

The Xingnong shopping website system mainly provides users with a platform for purchasing agricultural products. This article mainly uses Python language and MySQL database technology, based on the Django framework as a development platform, to complete a Xingnong shopping website system.

Key words: Django framework; Shopping website; MySQL database

目    录

  

ABSTRACT

第1章 绪论

1.1研究背景

1.2系统目标

1.3本文的结构

第2章 关键技术介绍

2.1 Pycharm简介 3

2.2 MySQL描述 3

2.3 Python编程语言 3

2.4 Django框架 4

第3章 系统分析

3.1可行性分析

3.1.1操作可行性

3.1.2技术可行性

3.1.3经济可行性

3.2功能需求分析

3.3用例分析

3.4数据流分析

3.5数据字典

第4章 系统设计

4.1结构设计

4.2功能设计

4.3数据库设计

4.3.1概念设计

4.3.2逻辑设计

4.3.3表设计

第5章 系统详细设计

5.1登录模块

5.2注册模块

5.3产品信息模块

5.4购买产品模块

5.5用户管理模块

5.6产品类别模块

5.7溯源案例管理模块

5.8订单管理模块

第6章 系统测试 31

6.1测试目的 31

6.2测试用例 33

第7章 结论 36

参考文献 37

  38

  1.  绪论

1.1研究背景

随着改革开放进程的推进﹐我国经济发展取得了长足的进步,但是由于地区发展的不协调性﹐我国仍然存在数以千万计的乡村贫困人口。我国现有的乡村贫困人口具有分散性强﹐贫困程度深,贫困区域大等特点。随着2020年全面建成小康社会的发展战略目标的临近,以地理区域为界线的乡村助农方法已经不再适合于解决现存的贫困现象。设计一套兴农购物网站系统是基于移动终端开发的助农系统,通过因地制宜、因户施策、推动乡村农产品、发布销售,通过系统实现信息化、实时化、数据化效率﹐推动农产品的销售发展,发挥农村助农实际作用。在我国信息技术和电商平台快速发展的过程中,农产品网络销售成为增加农产品营销渠道和数量的主要手段之一,具有非常重要的作用。。

1.2系统目标

对于典型的数据库系统,尤其是对于像兴农购物网站系统这样的数据流量大的网络系统,必须要满足使用方便、操作灵活等要求。本系统在设计时应该满足以下几个目标

(1)采用人机对话的操作方式,界面美观、友好,信息查询灵活、方便,数据存储准确、安全可靠;

(2)农户可以发表所有农产品,并可展示主要农产品;

(3)便于买家快捷地进行产品信息查询;

(4)用户可以随时修改自己的基本资料;

(5)卖家可以发布产品信息、监管用户可以复制审核农产品的发布;

(6)用户可以在线下单,随时查看自己的产品订单信息以及查看到产品的溯源信息;

(7)对客户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误;

(8)系统最大限度地实现了易维护性和易操作性;

(9)系统运行稳定、安全可靠。

1.3本文的结构

本文具体内容包括:绪论、系统采用的关键技术、系统分析、系统设计、系统实现和系统测试。本文着重描述了系统的组成与结构,阐述了系统的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。本系统在一定的环境下对系统的重要模块进行了模拟测试,证实了系统的可用性、可靠性。

  1.  关键技术介绍

2.1Pycharm简介

PyCharm是用于Python脚本语言的最流行的IDE。

1.每个文件都有其输出窗口。

2.可以终止进程(只要点下按钮就行)。

3.各种提示超强:①没用的变量颜色会变灰②用错了的变量下面会有红色波浪线③书写提示(sublime也有但较弱)。

4.索引功能超强。

2.2MySQL描述

现在MySQL数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。

MySQL是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且MySQL的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,MySQL是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件。

优点一:MySQL中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得MySQL在安全和完整性远远超出了其他关系型数据库。

优点二:对于那些动画、图形和声音的数据类型MySQL也可以支持,这说明多数据类型MySQL也是可以支持的。

优点三:MySQL还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对MySQL数据库的操作。

2.3Python编程语言

Python是一种开发语言,能够以直译的方式进行计算机语言,而且可以面向对象编程。它是由Guido van Rossum在十九世纪八十年代末研发出来,并且在九一年公开发行使用。Python有很多特点,比如有简洁的语法,清晰的语句,丰富的类库。正式由于这些优点,能够非常快速的和其他语言进行结合,来实现各种功能模块。很多人给它起了个外号叫“黏黏胶”语言。使用Python快速生成程序的原型,是现在很多程序员使用的方法。如果其中有比较特殊要求的地方,也非常方便的进行修改。

而且PyQt具有双证,为它能够跨平台运行(例如UNIX,微软和苹果的平台)提供了保证。

使用Python语言之前,要进行平台的安装,用户需要根据不同的平台,下载不同的版本,然后进行环境变量的配置,便可以进行运行。

Python 特点:

1.相对于其他计算机语言来说学习起来比较简单:Python的关键字较少,结构相对简单,语法简单,对于刚学编程语言的人来说更容易上手。

2.阅读起来也相对简单:Python代码结构简洁明了,并在定义上看起来也非常清晰,所以在阅读的过程中更加简单。

3.维护起来方便:Python的维护简单方便。

4.标准库特别广泛:Python的最大的最大优势是有非常多的库,而且是跨平台的,而且对系统的兼容性很好,比如在UNIX,Windows和Macintosh系统上都能够进行兼容。

5.具有方便的互动模式:有了互动模式的支持,开发者可以从代码就可以看到结果,这样开发者对程序的测试与调试,变的更方便。

6.可移植性好:Python可以跨平台运行。

7.扩展性非常好的:如果有关键的代码,你可以用特殊的语言进行编写,也能够在系统中调试运行。

2.4Django框架

Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django,只要很少的代码,Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。

Django本身基于MVC模型,即Model(模型)+View(视图)+ Controller(控制器)设计模式,因此天然具有MVC的出色基因:开发快捷、部署方便、可重用性高、维护成本低等。Python加Django是快速开发、设计、部署网站的最佳组合。

  1.  系统分析

3.1可行性分析

本系统操作简单易理解,农产品销售商城与大部分电子商务系统的操作流程类似,避免了用户在使用时候的流程繁杂以及效率低下问题,本次设计基于Django框架下,运用Python技术采用的是MySQL数据库和Myeclipse实现。

3.1.1操作可行性

本系统使用的是现流行的开发语言,即Python技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统,系统管理员只需要懂得文件上传,处理文本即可操作管理后台。系统布局较简单,功能操作不复杂,完全符合现代市场需求。因此本系统具有操作可行性。

3.1.2技术可行性

本系统在Windows7开发环境下,利用Django框架,并使用MySQL作为数据库管理系统来实现系统的各种功能。MySQL属于主从式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为用户端应用程序提供一致的接口。可以提高系统的性能,降低它的局限性。

3.1.3经济可行性

本系统是一个兴农购物网站系统,用户可以直接在系统上购买农户产品,同时计算机的价格十分低廉,性能却有了长足的进步。而此系统的开发可以有效的提高工作效率,降低管理成本,节省管理费用,为企业的工作效率带来了一个质的飞跃。因此,本系统在经济上是完全具有可行性的。

3.2功能需求分析

通过本系统,可以实现农产品销售,实现农村助农,根据条件需要,系统结构主要由四大用户组成。一是买家组成的用户,二是卖家,三是监管用户,四是系统管理员。

1用户登录及身份要求       

验证用户、管理员等用户的信息

2本系统产品销售功能需求(面向用户)

允许用户在线留言。

允许用户评论产品。

允许用户查询产品的信息。

允许用户对产品进行下单购买以及评价发布。

自动生成订单。

选择商品,进行购买,填写地址、联系电话等信息。

溯源案例,可以查看某一个产品的溯源案例信息。

3本系统产品发布功能需求(面向卖家)

产品发布,产品信息搜索。

产品信息,标题、产品名称、描述、原价、卖价、分类、产地、规格、图片。

订单信息,订单、总价、物流信息等。

溯源案例,发布产品的溯源案例信息。

物流信息,更新订单物流信息。

4本系统产品溯源功能需求(面向监管用户)

产品发布:审核卖家发布的产品信息。

订单列表:查看用户的订单信息。

订单评价:查看用户发布的评价信息。

3.3用例分析

1.下图所示描述管理员的用例。

                       


图3-1管理员用例图

2.下图所示为注册用户用例图。

图3-2注册用户用例图

  1. 下图所示为卖家用例图。

                     

      图3-3卖家用例图

  1. 下图所示为监管者用例图。

                    

        图3-4监管者用例图

3.4数据流分析

数据流图的设计主要是由于系统目前功能还没有确定,可以先描述可能要使用到的功能内容,并且向用户了解“系统从外界接受什么数据”和“系统向外界送出什么数据”等信息,根据用户所给的答复进行设计数据流图。

如下为系统的0层数据流图,系统用户分为管理员和普通用户。

    

图3-4系统数据流图(0层)

如下图所示为系统1层数据流图。

图3-5系统数据流图(1层)

兴农购物网站系统第二层数据流图主要详细反应各功能模块对应的操作与数据进行交互的原理。并且更详细的显示出各角色对功能模块操作的数据流向,让开发人员能了解该系统的开发方向,能够更准确的开发出系统模型。

将产品信息维护进行细化得到产品信息管理二层数据流程图,如下图所示。     

图3-6产品信息管理数据流图(2层)

将产品订单信息管理进行细化得到产品订单信息管理二层数据流程图,如下图所示。

图3-7产品订单管理数据流图(2层)

3.5数据字典

1.数据存储描述

下表描述了用户信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-1用户信息描述

数据流

用户信息

数据流来源

MySQL数据库中用户信息表,用户详细信息表

数据去向

系统界面,用户信息管理界面

数据流组成

用户名、用户密码、添加时间、编号

下表描述了产品信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-2产品信息描述

数据流

农产品信息

数据流来源

MySQL数据库中产品表,产品详细信息表

数据去向

产品界面

数据流组成

产品ID、价格、图片、产地

下表描述了订单信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-3订单信息描述

数据流

订单信息

数据流来源

MySQL数据库中订单表,订单详情表

数据去向

用户订单界面,订单管理界面

数据流组成

用户ID、订单ID、产品ID、订单金额

下表描述了物流信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-4物流信息信息描述

数据流

物流信息信息

数据流来源

MySQL数据库中物流信息表、商品详情表

数据去向

商品详情界面、购物车界面、物流信息管理界面

数据流组成

物流公司、订单编号、产品明细、物流进度

2.数据处理描述

下表描述用户通过输入用户名和密码进行身份验证处理,验证成功后将返回的信息显示在界面上。

表3-5用户身份验证

处理逻辑名称

用户身份验证

简述

检查输入信息的合法性

输入的数据流

用户名+密码

处理过程

根据输入的用户名和密码,检索用户,显示查询信息

输出的数据流

用户信息、商品信息

下表描述用户成功登录系统后通过卖家信息名查询卖家信息信息,根据查询后返回的数据显示在界面上。

表3-6卖家信息信息查询

处理逻辑名称

卖家信息信息查询

简述

检查输入信息的合法性

输入的数据流

卖家信息名或卖家信息编号或卖家信息类别

处理过程

登录成功的用户,通过卖家信息名查询用户所需的卖家信息

输出的数据流

卖家信息

下表描述卖家用户成功登录系统后可以添加产品,添加后,重新查询产品表,返回的产品数据显示在界面上。

表3-7产品信息添加

处理逻辑名称

产品信息添加

简述

检查输入信息的合法性

输入的数据流

产品信息

处理过程

登录成功的卖家用户,往数据库添加一条产品信息数据。

输出的数据流

产品信息,订单信息

下表描述管理员用户成功登录系统后,购买商品,填写订单收货人、收货地址、联系电话等,生成购买订单后,重新查询订单表,返回的订单数据显示在界面上。

表3-8订单生成

处理逻辑名称

订单生成

简述

检查输入信息的合法性

输入的数据流

订单信息

处理过程

登录成功的用户,往数据库添加一条订单信息数据。

输出的数据流

订单信息

下表描述用户成功登录系统后通过溯源案例标题查询溯源案例信息,根据查询后,返回的溯源案例数据显示在界面上。

表3-9溯源案例信息查询

处理逻辑名称

溯源案例信息查询

简述

检查输入信息的合法性

输入的数据流

溯源案例标题

处理过程

登录成功的用户,通过溯源案例标题查询用户所需的溯源案例信息

输出的数据流

溯源案例信息

  1.  系统设计

4.1结构设计

本系统的设计是基于Django技术+MySQL数据库的方式设计,以Python为开发工具,并运用Photoshop CS6技术美化网页,辅之以CSS技术。本系统使用的角色主要有系统管理员和普通用户(注册用户、卖家、监管者),系统分为前台和后台,前台主要用于助农产品的展示和购买,产品信息,订单,物流信息,评价,溯源案例等。后台用于产品信息和产品订单信息的管理,物流信息以及溯源案例管理等。

4.2功能设计

1.用户登录模块:确保用户注册信息的真实度是提高系统效率和盈利的重要因素。真实的用户才能带来价值,注册是保证真实用户使用系统主要业务的第一步,通过对用户注册信息的审核,可防止机器注册。使用现如今较为流行的管理员进行账号激活的验证方式,对用户注册信息进行过滤,未激活用户信息将不能使用系统主要功能。

如下图所示为用户登录流程图。

图4-2用户登录流程图

2.产品浏览模块:没有登录的用户和登录的用户都可以在系统前台进行产品浏览,用户可以查看产品的详细信息和选择相应的产品类别进行该类别下的产品查看,用户还可以通过产品名称的关键字进行搜索。

如下图所示为产品浏览流程图。

图4-3产品浏览流程图

3.订单管理模块:用户购买产品后,填写收货地址、收货人、电话等信息,生成订单信息,管理员可以审核订单,删除、修改订单,对订单信息进行相应的产品发货。 

如下图所示为订单管理流程图。

图4-4订单管理流程图

4.产品管理模块

卖家可以对产品信息进行增、删、改、查的操作。

5.用户管理模块

系统管理员可以对用户信息进行增、删、改、查的操作。

6.购买模块

用户对个人添加至购买信息里面的购买物品进行增删改查等操作。

如下图所示为购买模块流程图。

图4-5购买模块流程图

7.物流信息管理模块

用户在线物流商品,卖家发布物流,管理删除物流信息。

8.溯源案例管理模块

系统管理员可以对溯源案例进行增、删、改、查的操作。

4.3数据库设计

4.3.1概念设计

本系统的E-R图表现了系统中各个实体之间的联系,经过分析,系统的实体有产品信息、订单列表、物流信息、溯源案例、用户信息等。

产品实体图如下图所示。

图4-6品实体图

用户实体图如下图所示。

图4-7用户实体图

订单列表的实体图如下图所示。

图4-8订单列表实体图

4.3.2数据表设计

数据库表设计:经过前期的需求分析、可执行分析、数据流分析等各个流程分析,结合软件工程的高内聚、低耦合规则,并考虑到以后的程序功能扩展,设计如下几张表

表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_information (物流信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_information_id

int

10

0

N

Y

物流信息ID

2

order_number

varchar

64

0

Y

N

订单号

3

seller

int

10

0

Y

N

0

卖家

4

product_name

varchar

64

0

Y

N

产品名称

5

specifications

varchar

64

0

Y

N

规格

6

user_no

int

10

0

Y

N

0

用户编号

7

purchase_quantity

varchar

64

0

Y

N

购买数量

8

consignee_name

varchar

64

0

Y

N

收货人姓名

9

contact_number

varchar

64

0

Y

N

联系电话

10

ship_to_address

varchar

64

0

Y

N

收货地址

11

logistics_status

varchar

64

0

Y

N

物流状态

12

recommend

int

10

0

N

N

0

智能推荐

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

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

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

表order_evaluation (订单评价)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_evaluation_id

int

10

0

N

Y

订单评价ID

2

order_number

varchar

64

0

Y

N

订单号

3

seller

int

10

0

Y

N

0

卖家

4

product_name

varchar

64

0

Y

N

产品名称

5

specifications

varchar

64

0

Y

N

规格

6

user_no

int

10

0

Y

N

0

用户编号

7

purchase_quantity

varchar

64

0

Y

N

购买数量

8

evaluation_score

varchar

64

0

Y

N

评价分数

9

evaluation_content

text

65535

0

Y

N

评价内容

10

recommend

int

10

0

N

N

0

智能推荐

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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已取消

表product_information (产品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_information_id

int

10

0

N

Y

产品信息ID

2

seller

int

10

0

Y

N

0

卖家

3

product_name

varchar

64

0

Y

N

产品名称

4

specifications

varchar

64

0

Y

N

规格

5

place_of_origin

varchar

64

0

Y

N

产地

6

recommend

int

10

0

N

N

0

智能推荐

7

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

8

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

9

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

10

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

11

cart_price

double

8

2

N

N

0.00

卖价:[1]

12

cart_inventory

int

10

0

N

N

0

商品库存

13

cart_type

varchar

64

0

N

N

未分类

商品分类:

14

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

15

cart_img_1

text

65535

0

Y

N

主图1:

16

cart_img_2

text

65535

0

Y

N

主图2:

17

cart_img_3

text

65535

0

Y

N

主图3:

18

cart_img_4

text

65535

0

Y

N

主图4:

19

cart_img_5

text

65535

0

Y

N

主图5:

20

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

21

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

user_no

varchar

64

0

N

N

用户编号

3

full_name

varchar

64

0

Y

N

姓名

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

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

更新时间

表seller (卖家)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_id

int

10

0

N

Y

卖家ID

2

seller_no

varchar

64

0

N

N

卖家编号

3

seller_name

varchar

64

0

Y

N

卖家姓名

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

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

更新时间

表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

更新时间:

表supervise_users (监管用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

supervise_users_id

int

10

0

N

Y

监管用户ID

2

supervision_job_number

varchar

64

0

N

N

监管工号

3

name_of_supervisor

varchar

64

0

Y

N

监管姓名

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

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

更新时间

表traceability_case (溯源案例)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

traceability_case_id

int

10

0

N

Y

溯源案例ID

2

case_name

varchar

64

0

Y

N

案例名称

3

product_name

varchar

64

0

Y

N

产品名称

4

production_company

varchar

64

0

Y

N

生产公司

5

production_address

varchar

64

0

Y

N

生产地址

6

time_to_market

date

10

0

Y

N

上市时间

7

product_indicators

text

65535

0

Y

N

产品指标

8

fertilizer_records

text

65535

0

Y

N

肥料记录

9

pesticide_records

text

65535

0

Y

N

农药记录

10

environmental_data

text

65535

0

Y

N

环境数据

11

pesticide_test_report

varchar

255

0

Y

N

农药检测报告

12

case_details

text

65535

0

Y

N

案例详情

13

hits

int

10

0

N

N

0

点击数

14

praise_len

int

10

0

N

N

0

点赞数

15

recommend

int

10

0

N

N

0

智能推荐

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

  1.  系统详细设计

5.1登录模块

本系统主要的用户有系统管理员、用户、卖家、监管员,一个系统最基本的功能就是登录功能,本系统可以进行系统登录的角色有用户、管理员,买家对应前台登录界面,管理员对应后台登录界面,首先进入登录页,输入用户名和密码,然后提交至服务端进行数据库数据验证,通过Django逻辑代码判断数据库是否存在用户输入的这一个记录,如果存在,则判断用户身份,如果是买家用户,则进入买家前台,如果是管理员用户,则进入系统主页,并把用户对象存放在session中,如果不存在这样一条记录,则返回登录界面。

登录界面如下所示。

图5-1登录界面

5.2注册模块

客户在第一次进行注册时,需要填写自己的名字和密码,填写完成后,提交表单,该表单将自动验证你的信息,如果文件格式不正确,则会在窗口提醒你不正确,如果文件格式正确,窗口将会弹出注册成功。

用户注册界面如下所示:

图5-2用户注册界面

5.3产品信息模块

系统为用户提供简洁的产品信息视图,卖家可以自由发布,可以以列表的形式排列产品信息,也可以以网格状的形式显示产品信息,方便用户找到自己需要的产品信息。在chanpinxinxilist.jsp实现产品信息列表的展示,用户点击某个产品信息,通过产品信息id传递值,找到数据表的该产品的信息。

如下图所示为产品信息界面。

图5-3产品信息界面

5.4购买产品模块

用户在浏览产品后,登录系统前台,进行产品购买,可将产品先添加至购物车,然后在购物车里结算,在个人后台可以查看购买车里面的产品,确定产品之后可以生成订单,然后支付。

如下图所示为购买产品的部分界面。

图5-4购买产品界面

5.5用户管理模块

用户注册后在数据库生成一条用户户数据,并显示在用户户管理列表中,管理员可对用户数据增删改查,禁用用户账号,让用户无法登录系统。

如下图所示为用户管理的部分界面。

图5-5用户管理界面

5.6产品类别模块

用户在系统前台浏览产品类别,管理员登录系统后,可以对添加、删除、修改产品类别,产品类别管理包括添加产品类别、查询产品类别、修改产品类别,系统前台的产品类别信息时随系统后台变化而变化的,同时能进行详细产品类别的打印和产品类别列表,管理员还可以通过标题等关键字进行产品类别信息的搜索。

产品类别的界面如下图所示。

图5-6产品类别界面

5.7溯源案例管理模块

管理人员可以对溯源案例进行增删查改的操作,这些操作将在溯源案例界面进行。

如下图所示为溯源案例管理界面。

图5-7溯源案例管理界面

5.8订单管理模块

首先登录系统,进行订单表浏览,管理员登录后台进行用户订单信息维护管理,包括订单中的产品名称,产品种类,订单号,购买数量,价格,支付状态等。

如下图为订单管理界面。

图5-8订单管理界面

  1.  系统测

6.1测试目的

该系统能够完成产品展示,销售,物流信息,溯源案例、订单评价、用户管理等功能,做到所开发的系统操作简单,尽量使系统操作不受用户对电脑知识水平的限制,符合系统可维护性,由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,系统可以对系统数据及一些简单的功能进行独立的维护及调整;符合系统开放性要求,该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接。

6.2测试用例

1.注册测试

表6-1注册测试用例

字段名称

描述

测试项

首页注册功能测试

输入数据

1、输入正确的邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮

2、输入错误的用户名或密码、邮箱、验证码等,单击“注册”按钮

3、不输入邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮

预计输出数据

1、用户能正确注册账号,成功插入数据库用户的账户资料,提示注册成功。

2、无法注册用户信息,注册失败。

3、无法注册用户信息,注册失败。

使用上述测试用例对前台首页注册界面进行测试,当在输入正确的邮箱、用户名、密码、确认密码、以及验证码之后,系统将弹出注册成功信息提示对话框。

使用上述测试用例对前台首页注册界面进行测试,当在输入错误的用户名或密码、邮箱、验证码之后,系统将提示错误。

使用上述测试用例对前台首页注册界面进行测试,当在不输入用户名、密码、邮箱、验证码之后,点击注册按钮。

2.登录界面进行测试 

表6-2登录测试用例

测试项

首页登录功能测试

输入数据

1、输入正确的用户名和密码,单击“登录”按钮

2、输入错误的用户名和密码,单击“登录”按钮

3、不输入用户名和密码,单击“登录”按钮

预计输出数据

1、数据库中存在的用户能正确登录,。结果弹出主界面。

2、错误的或者无效用户登录,登录系统失败。

3、输入用户名或密码信息为空,登录系统失败。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入正确的用户名和密码时候,系统将弹出登录成功信息提示对话框。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入错误的或无效的用户名时,系统将弹出错误信息提示对话框。

通过测试可以观察到实现的运行结果与测试用例中预计输出的结果是相符的,所以测试通过。

3.产品管理进行测试 

名称:用户管理测试        目的:测试产品管理界面 

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了产品表中目前所存在的记录。

表6-5产品表数据

    产品名

产品类别

产品价格

产品状态

产品A

A

59

上架

产品B

B

18

上架

产品C

C

20

上架

添加时应注意事项:

管理员添加产品时必须添加已存在的产品类别,若该产品不属于现有的所有类别,则应该先添加产品类别。

下表描述了添加产品信息进行测试的用例,主要是为了防止添加产品信息时出现异常和存在的漏洞。

表6-6添加产品信息测试用例

输入

输出

产品信息名

产品信息价格

产品信息图片

A123

参数错误

产品信息A

123

Coid.doc

参数错误

产品信息A

59

请选择上传图片

产品信息A

59

a.jpg

添加成功

5.订单生成测试 

名称:订单生成测试        目的:测试提交订单界面

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了订单生成的测试用例,防止订单生成错误,造成企业和客户的损失。

表6-8订单生成测试用例

输入

输出

订单编号

联系人

地址

电话

11

张三

上海市静安区11号

212312323

订单生成成功

22

张三

123423423

请填写收货地址

33

张三

上海市静安区11号

请填写联系电话

44

上海市静安区11号

123423423

请填写联系人姓名

  1.  结论

经过这几个月的设计和开发,“基于Django的兴农购物网站系统”已经完成了,其功能符合设计需求,能够完成用户的注册、用户的在线购买、购物车管理、物流信息管理和管理员的产品信息管理、订单管理、溯源案例、用户管理、评价信息维护等功能。经过最后的使用,证明系统完全具有可行性与可扩充性。

在系统的分析阶段,主要是分析系统的需求,理解系统要完成的基本功能,找出系统的用例(Use Case)和角色(Actor),画出系统的用例模型图,用例模型是此后系统建模的基础。在用例的基础上分析顺序图和协作图,得到系统的所有对象,然后建立对象模型。抽象出系统的类,并将系统中联系紧密的类划分为若干个包,画出包图。有了这些基础,就可以将系统划分为小单元功能模块。

整个过程中,我必须认可UML统一建模语言,它让我很清晰的知道自己想做什么,想实现什么,对系统后面的代码编写起到决定性的帮助,同时经过本次系统的设计与实现,让我积累了很多经验,提高了编写程序的能力,为以后的学习和工作打下了坚实的基础。

由于时间有限,本系统还有待继续完善和改进,因此需要进一步进行分析和修改,以使其更加完善! 

参考文献

  1. 鞠红凤,张瑛,黄琳倩,付慧敏,胡湘.一站式助农电商服务平台的设计[J].电子世界,2022(01):198-199+203.
  2. 马富春. 甘肃青春助农 唱响“甘味”之歌[N]. 中国青年报,2021-12-24(001).
  3. 孟静.基于平台经济视角下直播助农模式探讨[J].黑龙江工业学院学报(综合版),2021,21(11):91-96.
  4. 郭沛,张成鹏,李梦琪.电商助农:运作实践、增收机理、创新绩效和优化路径[J].中共云南省委党校学报,2021,22(05):151-160+2.
  5. Shuhua CAO,Yujun HU,Peijun FU.Present Situation and Problems of Application of New Media in Rural E-commerce: A Case Study of Anhui Province[J].Asian Agricultural Research,2021,13(10):12-17.
  6. 孙晟妤,马悦鸣,党浩轩,黄佳瑶,张丰钰.利用新媒体平台对辽扶贫助农的新路径研究[J].营销界,2021(38):126-128.
  7. 徐涛,陶佳,曾聪,唐江兰.乡村振兴视域下“互联网+”农业互助平台的开发与应用[J].南方农业,2021,15(24):144-145.
  8. 朱悦彤,于雅洁,朱硕闻,马思怡,李佳怡.基于新媒体的助农方法研究[J].营销界,2021(20):32-33.
  9. 孙丹丽,郭月朦.基于“互联网+”的乡村产品品牌价值探索[J].包装工程,2021,42(08):234-240.
  10. 谢倩.电商助农政策有关问题研究[J].农村经济与科技,2021,32(03):143-144.

[11]  焦瑾,陈梦梦,董思颖,侯冰洁,王梦茹.助农专家科技平台的设计和应用[J].南方农机,2020,51(22):74-75.

[12]  戴月,陈俊雅,纪倩倩,周稿,石官平.基于移动社交电商的农产品上行探究[J].湖北开放职业学院学报,2020,33(13):124-126.

[13]  电商平台、网络直播、微信发挥大作用重庆21万志愿者利用农业信息工具助农[J].农业工程技术,2020,40(09):68-69.

[14]  William J.DAVIES,Susan E.WARD,Alan WILSON.Can crop science really help us to produce more betterquality food while reducing the world-wide environmental footprint of agriculture?[J].Frontiers of Agricultural Science and Engineering,2020,7(01):28-44.

[15]  阚丽丽.电商平台“花式”助农 机遇与挑战并存[J].新产经,2020(03):65-67.

[16]  肖佳敏,徐凯丽,张如意,杨明凯,叶丽莎,朱立飞.电商网络平台助力农村经济发展办法研究——基于“绿屏菜园”的平台研究以浙江丽水为例[J].现代营销(信息版),2019(08):239.

[17]  琚书存,程文杰,徐建鹏,王晖,伍琼.打造三大服务平台 做好气象助农扶贫工作[J].中国农村科技,2018(08):25-28.


 

致 谢

大学的学习生活总是感觉短暂的,总感到知识还没有学够,但大学毕业就在我们面前,即毕业设计即将的结束,意味着我们的大学生涯即将结束。毕业设计是我们在大学所学知识的一次总结,更是对我们过去所学知识的提炼和升华,通过毕业设计,我们认识到大学学习过程中还有那些知识没有掌握,那些知识需要我们进入深入研究。这次毕业设计让我学到了很多新的知识,研究了一些新的以前自己不熟悉的领域,使我处理问题的能力得到了一定的提升,同时也为今后的继续深造或踏入社会大门提供了很好的锻炼机会。

我也曾经沮丧过,失落过,想放弃过,可是因为你们这不厌其烦的鼓励和支持才使得我坚持了下来,这里我要对我的老师和同学们说句“谢谢你们”。因为我们的知识是有限的,所以本文将不可避免的会出现一些错误和不足之处,还请老师指正。

免费领取项目源码,请关注点赞+私聊

;