摘 要
智慧农产品交易平台的设计与实现是目前农业领域信息化发展的重要方向之一。传统农产品交易存在着信息不对称、交易环节繁琐、价格波动大等问题,限制了农产品市场的健康发展。因此,研究智慧农产品交易平台的设计与实现可以有效解决这些问题,促进农产品生产者、经销商和消费者之间信息交流和交易的便捷化和高效化。
此外,随着互联网和移动互联网技术的普及和发展,人们对于农产品的质量、产地、溯源等信息需求越来越高,传统的农产品交易方式已经无法满足这些需求。因此,研究智慧农产品交易平台可以利用现代信息技术手段,提供农产品溯源、品质保证、交易便捷等功能,满足消费者对于农产品安全和质量的需求,推动农产品产业的升级和优化。
本智慧农产品交易平台的开发分析了智慧农产品交易平台的设计与实现的需求和功能,采用Django技术实现了包括前台用户的首页、系统公告、商品资讯、商品信息、商城管理(我的购物车、我的订单、我的地址、我的优惠券)、交流论坛、我的账户、个人中心(个人首页、交流论坛、订单配送、收藏)和后台管理员的后台首页、系统用户、帖子类型管理、交流论坛管理、系统管理、系统公告管理、资源管理、商城管理(商品信息、分类列表、订单列表、订单配送)等。为用户提供了一个简单、高效、便捷的购物交易渠道,该系统不仅能够清晰快捷地搜索和浏览平台内容信息,而且界面设计精美,功能能够与页面完美融合,具有可高效简单的操作性。
关键词:智慧农产品交易平台;Django;Python;MySQL
Abstract
The design and implementation of a smart agricultural product trading platform is currently one of the important directions for the development of informationization in the agricultural field. Traditional agricultural product trading faces problems such as information asymmetry, cumbersome trading processes, and large price fluctuations, which limit the healthy development of the agricultural product market. Therefore, studying the design and implementation of a smart agricultural product trading platform can effectively solve these problems, promote the convenience and efficiency of information exchange and trading among agricultural product producers, distributors, and consumers.
In addition, with the popularization and development of Internet and mobile Internet technology, people's demand for information such as the quality, origin and traceability of agricultural products is becoming higher and higher, and traditional agricultural products trading methods can no longer meet these needs. Therefore, researching smart agricultural product trading platforms can utilize modern information technology to provide functions such as traceability, quality assurance, and convenient trading of agricultural products, meet consumer needs for agricultural product safety and quality, and promote the upgrading and optimization of the agricultural product industry.
The development of this smart agricultural product trading platform analyzed the requirements and functions of the design and implementation of the smart agricultural product trading platform. Using Django technology, it achieved front-end user homepage, system announcement, product information, product information, mall management (my shopping cart, my order, my address, my coupon), communication forum, my account, personal center (personal homepage, communication forum, order delivery, collection), and back-end administrator's homepage, system user, post type management, communication forum management, system management, system announcement management, resource management, mall management (product information, classification list, order list, order delivery), etc. This system provides users with a simple, efficient, and convenient shopping transaction channel. Not only can it search and browse platform content information clearly and quickly, but the interface design is exquisite, and the functions can be perfectly integrated with the page, with efficient and simple operability.
Keywords: Smart agricultural product trading platform; Django; Python; MySQL
目录
1 绪论
1.1 研究背景
随着移动互联网的普及和大数据技术的发展,智慧农业已成为农业领域的热点研究方向,同时,人们对于农产品的质量、产地、溯源等信息需求越来越高,传统的农产品交易方式已经无法满足这些需求。通过构建智慧农产品交易平台,可以整合农产品生产、销售和物流等环节,实现农产品全生命周期的数字化管理和优化。此外,智慧农产品交易平台还可以为农民提供更广阔的销售渠道,拓展消费市场,提高农产品的附加值。
然而传统农产品交易存在着信息不对称、交易环节繁琐、价格波动大等问题,限制了农产品市场的健康发展。因此,研究智慧农产品交易平台的设计与实现可以利用现代信息技术手段有效解决这些问题,促进农产品生产者、和消费者之间信息交流和交易的便捷化和高效化。
本智慧农产品交易平台的开发分析了智慧农产品交易平台的设计与实现的需求和功能,采用Python作为主要开发语言,使用MySQL数据库进行数据存储,并利用Django前端技术框架进行用户界面的设计,基本实现智慧农产品交易主要流程功能。该平台的开发为用户提供了一个简单、高效、便捷的购物交易渠道,让用户不仅能够清晰快捷地搜索和浏览平台内容信息,而且平台界面设计精美,功能能够与页面完美融合,具有可高效简单的操作性。本文详细描述了系统的功能需求、数据库设计、系统架构和主要模块的实现过程。通过测试和验证,该系统达到了预期的目标,为农产品线上交易销售提供了有效的支持。
1.2研究意义
研究智慧农产品交易平台的设计与实现具有重要的理论研究意义和实际应用推广价值,对于促进农产品市场的有序发展、提高农产品质量和安全水平、推动农业信息化进程具有重要的现实意义。
智慧农产品交易平台的实现旨在提供一个便捷的在线平台,供用户购买农产品,搭建多样的销售渠道,并优化物流配送,提高农产品交易的管理效率,提升用户交易体验。通过该系统,用户可以搜索和浏览农产品的商品信息,并进行购买支付和管理订单,管理员可以及时管理和更新系统相关信息,维护系统的正常运转,保证用户能够方便地交易农产品。
同时,该平台利用互联网和信息技术,采用科学的管理方式来实现智慧农产品交易,促进农产品交易领域的智慧化、信息化、数据化,提高农产品的质量和生产效率,进而带动整个农业产业的发展。其次,建立智慧农产品交易平台有助于解决传统农产品交易过程中存在的信息不对称、交易环节复杂等问题,提升交易的便捷性和效率。此外,智慧农产品交易平台也有利于推动农产品品牌化、标准化和市场化,促进农民增收致富,有助于实现农业现代化的目标。
1.3研究现状
目前,智慧农产品交易平台已经成为农业领域的热点和关注的焦点。该平台的设计与实现涉及多个方面。
首先,平台需要搭建一个稳定的网络基础设施,以保证交易过程的高效和可靠。这包括建立农产品信息数据库,并实现对数据的快速查询和更新。同时,还需要建立一个安全的网络通信机制,确保交易信息的保密性和完整性。其次,平台应具备供需匹配和推荐功能。通过对农产品生产和需求的数据分析,平台可以推荐适合农产品的买卖双方,从而提高交易效率和满意度。此外,还可以结合市场行情和价格预测等因素,为用户提供农产品价格参考和决策支持。同时,平台需要提供便捷的交易服务。通过智能化技术和移动互联网的应用,用户可以随时随地进行农产品交易,在线查看和更新交易信息,实现交易双方的信息对称。平台还可以提供交易保障机制,如支付担保和质量监控等服务,以增加用户的信任和交易安全感。此外,平台需要与农业产业链的各个环节进行有效的连接和协调。与农产品生产者、批发商、零售商等各个参与方建立合作关系,实现农产品的全程可追溯性,提高农产品的质量和品牌价值。
综上所述,智慧农产品交易平台的设计与实现需要考虑到网络基础设施、供需匹配与推荐、交易服务和产业链协调等方面的因素,以实现高效、便捷和安全的农产品交易环境。
2 智慧农产品交易平台需求分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
智慧农产品交易平台设计与实现是一个基于Web的交易、管理平台,我们在实现这个系统所采用的技术方案是基于Python语言,采用的是比较流行的Django框架以及MYSQL数据库,在大学的学习中都已经学过相关课程,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到Python、Django和MySQL,所以可以实现自己的自主开发在技术方面可行的。
2.1.2 经济可行性分析
开发本智慧农产品交易平台的技术都是可以从网上直接免费下载,不用花一分钱,而且系统的源代码都是自己进行设计开发的,不需要额外的成本,如果后期想要进行运营,只要把配置到服务器上,花费服务器的租赁费用,在使用中可以进行增加广告收益,因此在经济方面是可行的。
2.1.3 操作可行性分析
当下网络新时代,计算机已经得到了普及,多数人对计算机都比较的熟悉,知道如何使用它,当然也存在对计算机比较陌生的这一群体,也需要对其进行考虑。在进行智慧农产品交易平台页面的设计的时候,考虑到使用人群,可能也存在对计算机比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对计算机陌生还是对计算机熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面也是非常可行。
2.2需求分析
本智慧农产品交易平台的设计主要是针对三种用户进行使用,第一种是以游客身份使用,游客在进入系统后可以查看到系统中的所有内容,包括系统公告、商品资讯、商品信息、交流论坛,如果想要进行发布帖子,进行评论或者实现在线购买支付,可以注册登录;第二种是注册之后有账号的用户,登录以后可以收藏、评论、购买、支付,管理自己的购物车、订单、地址和个人资料等;第三种则是管理员,是系统的管理者,管理员对系统中的系统用户、帖子类型管理、交流论坛管理、系统管理、系统公告管理、资源管理、商城管理理进行整体把控。
2.3 功能需求分析
(1)注册登录模块:注册是游客独有的功能,注册后就成了系统的正式用户了,然后游客通过前台登录,管理员通过后台登录。注册登录模块用例如下图2-1所示。
图2-1 注册登录模块用例图
(2)商品资讯模块:用户可以查看商品资讯,用户可以收藏、评论、点赞商品资讯信息,管理员可以添加、修改、删除商品资讯,管理评论。商品资讯模块用例如下图2-2所示。
图2-2 商品资讯模块用例图
(3)商品信息模块:游客可以查看商品信息,用户可以对商品信息进行收藏、评论、加入购物车、立即购买,管理员和买家用户可以添加、修改、删除商品,管理商品评论。商品信息模块如下图2-3所示。
图2-3 商品信息模块用例图
(4)系统用户模块:系统用户是后台管理员独有功能,管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。系统用户模块用例如下图2-4所示。
图2-4系统用户模块用例图
(5)购物管理模块:购物管理是前台用户独有功能,用户可以选择两种购买方式,一种是把商品加入到购物车,另一种是直接购买,最终实现购物功能,购物管理模块用例如下图2-5所示。
图2-5购物管理模块用例图
(6)订单管理模块:订单管理模块是前台用户和管理员都有的功能,前台用户可以提交订单,管理订单,管理员能够对用户订单进行管控。订单管理模块用例如下图2-6所示。
图2-6订单管理模块用例图
(7)我的账户/个人中心模块:我的账户/个人中心模块是用户独有的功能,可以在“我的账户”管理个人资料,密码修改,也可以在“个人中心”对个人首页、交流论坛、订单配送、收藏进行管理,个人中心用例如下图2-7所示。
图2-7个人中心管理模块用例图
2.4 非功能性需求分析
系统的非功能需求方面主要是从系统的安全性、存储性、可靠性、易学性、稳定性等方面进行分析:
(1)安全性:系统的安全问题是开发者首先要考虑的,如果系统存在安全隐患,可能使得用户个人信息被泄露,给用户带来困扰,造成损失。
(2)储存性:因为用户使用的关于农产品销售在线销售的网站,买家用户多,而且登录后要查询各种农产品信息,那就需要一个强大的数据库来进行数据的存储,对数据库的要求是非常严格的,本系统选用的是MYSQL数据库,MYSQL的运行速度很快,执行命令的速度也非常快,而且体积小。
(3)可靠性:可靠性指的是用户在进行农产品信息查询、评论以及购买的时候,能够按照用户的指示进行显示信息,如果用户点击查询农产品详细信息,显示出来的是不可购买的信息,那就违背用户的初衷。
(4)易学性:系统的开发面向对象学历不尽相同,所有在开发的时候要考虑系统操作应该简单,不需要进行任何学习、培训,只能上网的用户就可以操作。
(5)稳定性:系统在运行方面要很稳定,系统的界面、字体要清楚,没有失真现象,给用户以良好的体验。
(6)可拓展性:本智慧农产品交易平台的功能还有待完善,因此系统要有很好的拓展性,方便后期功能更新维护。
2.5系统角色用例分析
2.5.1系统前台用户用例
智慧农产品交易平台前台用户的主要功能是对系统信息的查看、收藏、评论、发布交流论坛帖子以及对商品的购买,购买的过程中需要对收货地址进行设置,对购物车进行管理,查看自己的订单。前台买家用户用例图如图2-8所示。
图2-8 智慧农产品交易平台前台买家用户用例图
在系统前台中主要实现的是对智慧农产品交易平台中信息的浏览,用户对信息收藏、评论以及在商品信息中对商品购买几个功能。
(1)商品资讯功能,主要实现了是对商品资讯的查看,用户进行评论、收藏、点赞,用例说明如下表所示:
表2-1 商品资讯用例说明
用例名称 | 商品资讯 |
角色 | 用户 |
用例说明 | 对商品资讯评论 |
前置条件 | 用户登录到系统当中 |
后置条件 | 用户发表评论 |
基本事件流 | 1.进入系统登录界面 2.点击商品资讯,选择某条商品资讯查看详情 3.输入评论内容 4.点击提交按钮,发表评论 |
扩展流程 | 3a.用户没有登录成功 |
异常事件流 | 3a.输入评论内容为空 |
其他 | 无 |
(2)商品信息购买功能,本功能是系统的主要功能,主要是实现在线购买功能,用例说明如下标所示:
表2-2 商品信息用例说明
用例名称 | 商品购买 |
角色 | 用户 |
用例说明 | 对商品加入购物车购买或者立即购买 |
前置条件 | 用户登录到系统当中 |
后置条件 | 对商品加入购物车购买或者立即购买 |
基本事件流 | 1.进入系统登录界面 2.点击商品信息,选择某条商品信息查看详情 3.加入购物车或者立即购买 4.输入订单信息提交订单 |
扩展流程 | 3a.现在支付方式 |
异常事件流 | 3a.用户没有登录 |
其他 | 无 |
2.5.2系统后端用例
用户不能进入后台,管理员进入以后可以对首页的系统用户、交流论坛管理、系统管理、网站公告管理、资源管理、商城管理进行管理。
后台管理员用例图如图2-9所示。
图2-9 智慧农产品交易平台后台管理员用户用例图
后台管理员主要实现了是对用户、交流论坛信息、轮播图、网站公告、商品资讯和商品信息、订单信息的增删改查操作。后台管理员的用例说明如下表所示:
表2-3 后台管理员用例说明
用例名称 | 后台管理 |
角色 | 管理员 |
用例说明 | 对前端显示的信息进行管理 |
前置条件 | 管理员登录进入后台管理页面 |
后置条件 | 无 |
基本事件流 | 1.管理员登录进入后台管理界面 2.点击左侧选择相应功能板块 3.选择所要操作的数据 4.点击选择的内容进行增加/删除/修改/查找 5.点击立即保存按钮 |
扩展流程 | 无 |
异常事件流 | 无 |
其他 | 无 |
2.6 系统流程分析
2.6.1数据流程
智慧农产品交易平台主要的目的就是实现对商品信息的农产品的在线购买,图2-10就是系统的数据流图。
图2-10农产品购买操作展开图
2.6.2业务流程
分析完智慧农产品交易平台的数据流,接下来我们来看系统的业务流程,图2-11就是业务流程图:
图2-11业务流程图
3 智慧农产品交易平台概要设计
3.1系统功能结构设计
系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计智慧农产品交易平台的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该智慧农产品交易平台的结构设计图,直观明了的可以看出本项目程序的功能。
智慧农产品交易平台功能结构图如图3-1所示。
图3-1 智慧农产品交易平台功能结构图
3.2系统数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个智慧农产品交易平台中主要的数据库表总E-R实体关系图。

图3-2 系统总E-R关系图
3.2.2数据库逻辑结构设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本智慧农产品交易平台的主要的数据库表如下:
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 默认判断 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | buyer_user_id | int | 10 | 0 | N | Y | 买家用户ID | |
2 | name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | mobile_phone_number | varchar | 64 | 0 | Y | N | 手机号 | |
4 | gender | varchar | 64 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用于产品规格描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exchange_forum_id | int | 10 | 0 | N | Y | 交流论坛ID | |
2 | post_title | varchar | 64 | 0 | Y | N | 帖子标题 | |
3 | post_type | varchar | 64 | 0 | Y | N | 帖子类型 | |
4 | cover_image | varchar | 255 | 0 | Y | N | 封面图 | |
5 | user_name | int | 10 | 0 | Y | N | 0 | 用户名 |
6 | post_content | longtext | 2147483647 | 0 | Y | N | 帖子内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
10 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | post_type_id | int | 10 | 0 | N | Y | 帖子类型ID | |
2 | post_type | varchar | 64 | 0 | Y | N | 帖子类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_information_id | int | 10 | 0 | N | Y | 商品信息ID | |
2 | specifications | varchar | 64 | 0 | Y | N | 规格 | |
3 | source | varchar | 64 | 0 | Y | N | 来源 | |
4 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
5 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
6 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
7 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
8 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
9 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
10 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
11 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
13 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
14 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
15 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
16 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
17 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | | 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 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
4 智慧农产品交易平台详细设计与实现
4.1前台用户功能模块
4.1.1 前台首页界面
游客或者用户进入系统后可以查看系统的信息,包含了程序的标题、导航栏、轮播图、通知公告、商品信息等,其主界面展示如下图4-1所示。

图4-1 前台首页界面图
4.1.2注册界面
游客可以查看系统信息,也有注册成为用户的权限。其用注册流程图如图4-2所示,注册界面展示如下图4-3所示。
图4-2注册流程图

图4-3 用户注册界面图
注册关键代码如下所示。
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登录界面
当用户注册成功以后就成为了正式用户,正式用户可以通过前台的登录页面登录到系统当中,用户登录流程如图5-4所示,登录界面如下图5-5所示。
图4-4 登录流程图
图4-5用户登录界面图
登录的逻辑代码如下所示。
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-6所示。

图4-6商品资讯界面图
4.1.5 商品信息界面
游客只能查看商品信息的商品,不能进行任何购买、评论操作,买家用户可以选择自己需要的商品,加入购物车、立即购买、收藏、评论。
加入购物车流程图如图4-7所示。
图4-7加入购物车流程图
购买工作流程图如图4-8所示。
图4-8 购买工作流程图
商品信息详情展示页面如图4-9所示。

图4-9 商品信息详情展示界面图
购买支付界面如图4-10所示。

图4-10 购买支付界面图
4.1.6交流论坛界面
当用户点击前台“交流论坛”按钮后可以按提示发布交流论坛帖子信息,填写完后点击提交按钮,管理员会在后台对交流论坛进行审核回复。审核通过的帖子会在交流论坛页面显示出来,用户可查看帖子详情,并进行点赞,收藏、评论,交流论坛界面如下图4-11所示。

图4-11 交流论坛填写界面图
4.1.7个人中心界面
当用户点击右上角“账号名”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、交流论坛、订单配送和自己收藏的信息进行设置管理。用户个人中心界面如下图4-12所示。

图4-12 用户个人中心界面图
4.2后台功能模块
4.2.1后台首页界面
在后台系统后台首页中,管理员可查看商品销售金额统计、商品销售数量统计等信息数据分析图表。系统用户界面如下图4-13所示。

图4-13 后台首页界面图
4.2.2交流论坛管理界面
智慧农产品交易平台中的管理人员在“交流论坛管理”这一菜单下是可以对用户提交的交流论坛信息进行审核回复,支持增删改查,可以查看详情信息和查看评论,审核通过的交流贴会显示在系统前台。交流论坛管理界面如下图4-14所示。

图4-14 交流论坛管理详情界面图
4.2.3系统管理界面
智慧农产品交易平台中的管理人员在“系统管理”这一菜单下是可以对智慧农产品交易平台内展示的轮播图进行添加修改的。系统管理界面如下图4-15所示。

图4-15 系统管理界面图
4.2.4 资源管理界面
管理员点击“资源管理”可以对前台展示的商品资讯以及资讯所属分类进行管理,进行增改删查操作,商品资讯管理的界面如下图4-16所示。

图4-16资源管理界面图
4.2.5 商城管理界面
管理员可以对商城管理中的商品信息、分类列表、订单列表、订单配送等信息进行管理,包括进行添加、修改、删除、查询等功能,并可查看商品信息的评论详情信息修改配送状态和签收状态,商城管理界面如下图4-17所示。

图4-17商城管理界面图
5系统的测试
5.1测试的目的
一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
5.2 系统测试用例
系统测试包括:管理员登录功能测试、商品信息查询功能测试、商品信息添加功能测试、加入购物车购买功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 管理员登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
登录模块测试 | 登录成功的情况 | 管理员可以通过浏览器进入到智慧农产品交易平台后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。 | 成功登录到管理员管理的界面 | 正确 |
登录模块测试 | 登录失败的情况 | 管理员可以通过浏览器进入到智慧农产品交易平台后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。 | 系统提示“用户名和密码不匹配” | 正确 |
商品信息查询功能测试:
表5-2 商品信息查询功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询商品信息功能测试 | 查询成功的情况 | 用户在导航栏中点击“商品信息”,输入关键词查询商品,输入的商品在系统中存在,显示查询商品信息 | 查询成功 | 正确 |
商城管理中商品信息添加界面测试:
表5-3 管理员添加商品信息界面测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
商品信息添加模块测试 | 商品信息添加成功的情况 | 在“商城管理”菜单中点击“商品信息”会显示出所有的商品信息,点击“添加”,输入商品信息,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
商品信息添加模块测试 | 商品信息添加失败的情况 | 在“商城管理”菜单中点击“商品信息”会显示出所有的商品信息,点击“添加”,不输入标题,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,标题不能为空” | 正确 |
加入购物车购买功能测试:
表5-4 加入购物车购买功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
加入购物车购买功能测试 | 购买的情况 | 用户在商品信息的商品详情页面,点击“加入购物车”,然后在“我的购物车”界面,点击“购买”按钮,进行付款。 | 加入购物车购买成功 | 正确 |
5.3 系统测试结果
本次开发的系统是一个农产品在线交易、购买的系统,主要功能就是实现用户的在线购买,通过对管理员登录、商品信息查询、商品信息添加、加入购物车购买这几个方面的测试可以看出系统的基本可以实现用户对商品购买的功能,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。
6 结论
经过了几个月的努力,本智慧农产品交易平台终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的智慧农产品交易平台对我意义重大。
在开发系统最初,首先对用户购买农产品方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足使用者的需求,对需求进行分析;其次选择自己比较熟悉的Python语言,并配合使用MySQL数据库,利用Django框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Django的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]秦庆.现代山区农村市场的结构及其生成机制——基于云南Y区农产品市场的分析[J].求索,2024,(01):188-196.DOI:10.16059/j.cnki.cn43-1008/c.2024.01.021.
[2]范磊,朱璐璐.探究电子商务环境下农产品交易模式及发展[J].商场现代化,2024,(03):24-26.DOI:10.14013/j.cnki.scxdh.2024.03.025.
[3]薛成森.智慧物流嵌入农产品文化建设发展研究[J].物流工程与管理,2024,46(01):104-107.
[4]杜朋轩,曹梦川,伍丹,等.刍议Java Web在智慧农业物联网中的应用[J].科技资讯,2024,22(01):148-151.DOI:10.16661/j.cnki.1672-3791.2306-5042-8129.
[5]郝晨方,赵建欣.交易方式对农户行为影响的研究综述[J].中国储运,2023,(12):144.DOI:10.16301/j.cnki.cn12-1204/f.2023.12.046.
[6]胡从寅,杨文远,赵鑫,等.基于Django+Vue.js的设计作品交易平台的实现[J].软件,2023,44(11):42-46.
[7]王楠.基于智慧农业视角的农产品数字营销渠道研究[J].营销界,2023,(21):83-85.
[8]吴建光.电子商务环境下农产品交易模式及发展研究[J].全国流通经济,2023,(18):48-51.DOI:10.16834/j.cnki.issn1009-5292.2023.18.044.
[9]林正敏,王淑娥,于小亿,等.基于Django的智慧养老系统设计[J].电脑知识与技术,2023,19(02):25-28.DOI:10.14004/j.cnki.ckt.2023.0099.
[10]郭俊杰,李文雅,王庆.农产品交易现状与线上平台结合可行性研究——以朝阳市为例[J].新农业,2022,(24):102-103.
[11]陈乐雨,姚欣雨,王庆.农产品线上交易平台设计与构建研究[J].新农业,2022,(22):59-60.
[12]华厚强,康佳春.基于Python的校园交易平台设计[J].现代计算机,2022,28(15):105-111.
[13]葛树杨.疫情环境下农产品交易系统的设计与实现[D].南京林业大学,2022.DOI:10.27242/d.cnki.gnjlu.2022.000531.
[14]魏琳.我国互联网发展对农产品流通的影响研究[D].辽宁大学,2022.DOI:10.27209/d.cnki.glniu.2022.000701.
[15]蔡自伟.基于Django框架的量化交易系统设计[J].山西大同大学学报(自然科学版),2021,37(05):39-42.
[16]秦洪新,徐明,成爱民,等.贵州农产品交易网站的开发与设计[J].福建电脑,2021,37(08):90-92.DOI:10.16707/j.cnki.fjpc.2021.08.024.
[17]欧瀚祺,杨莎,肖艳飞,等.基于Django的物品租赁管理系统的设计[J].电脑知识与技术,2020,16(35):59-61.DOI:10.14004/j.cnki.ckt.2020.3782.
[18]郭守文.基于Django的智慧社区后台管理系统设计与实现[D].浙江工业大学,2020.DOI:10.27463/d.cnki.gzgyu.2020.001149.
[19]白相辰.基于Django框架的Web在线教育平台的设计与实现[D].北京交通大学,2019.DOI:10.26944/d.cnki.gbfju.2019.000099.
[20]熊柯宇.基于Django的网络生鲜预定系统的设计与实现[D].西华大学,2018.DOI:10.27411/d.cnki.gscgc.2018.000024.
[21]陈毅.基于Django的生鲜电商系统的研究与开发[D].东华大学,2018.
致谢
眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!
我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。
感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!