基于python的超市购物系统的设计与实现

2023-12-20

摘 要

随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。从当初的传统销售行业抵制互联网销售,到现在传统销售与网络销售的结合模式,都代表着网络购物是一种潮流,是线下实体经济的补充,不再是有些学者叫嚣的洪水猛兽,有效的在信息传播上突破了空间距离的限制,使得超市购物变得与实体购物一样舒适。本次开发的超市购物系统,实现了购物在线查看与购买下单的功能。开发本程序用到了Python作为开发语言,django作为开发框架。数据库采用关系数据库市场占有率最高的MySQL作为本程序使用的数据库,完全符合程序使用并且有丰富的拓展余地。程序从需求到设计,从开发到测试,都在功能上和性能上都不断的进行了调试,让开发的程序在使用上用户体验更美好。
关键词:超市购物系统;Python;MySQL

Abstract
With the vigorous development of the domestic market economy in recent decades, we have suddenly encountered the Internet technology introduced into China from abroad. The Internet industry has experienced many setbacks from the initial distrust of the masses to the present. From the original traditional sales industry boycotting Internet sales to the current combination mode of traditional sales and online sales, all represent that online shopping is a trend and a supplement to the offline real economy. It is no longer a monster shouted by some scholars. It effectively breaks through the limitation of spatial distance in information dissemination, making supermarket shopping as comfortable as physical shopping. The supermarket shopping system developed this time realizes the functions of shopping online viewing and purchase order. The development of this program uses Python as the development language and Django as the development framework. The database uses mysql, which has the highest market share of relational database, as the database used by this program, which is fully in line with the use of the program and has rich room for expansion. From requirements to design, from development to testing, the program has been continuously debugged in function and performance, so as to make the user experience of the developed program better.
Key Words:Supermarket shopping system; Python; MySQL

目 录

1 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容 2
2 开发技术 3
2.1 B/S架构 3
2.2 Mysql数据库 3
2.3 Python语言 4
3 系统分析 5
3.1可行性研究 5
3.2系统性能分析 6
3.3 系统流程分析 6
3.3.1 系统开发流程 6
3.3.2 系统注册流程 7
3.3.3 系统登录流程 8
4 系统设计 10
4.1 系统结构设计 10
4.2系统功能模块设计 11
4.3数据库设计 11
4.3.1数据库E-R图 11
4.3.2 数据库表结构 13
5 系统实现 17
5.1 管理员功能实现 17
5.1.1 用户管理 17
5.1.2 店员管理 17
5.2 店员功能实现 18
5.2.1 商品管理 18
5.2.2 订单管理 19
5.3 用户功能实现 19
5.3.1 个人中心 19
5.3.2 我的订单 20
6系统测试 22
6.1 测试的基本概念 22
6.2 测试的任务和目的  22
6.2.1测试的任务  22
6.2.2测试的目的  23
6.3 测试结果分析 23
结 论 24
参考文献 25
致 谢 26

1 系统设计

系统分析接下来的操作步骤就是系统的设计,这部分内容也是不能马虎对待的。因为生活都是在不断产生变化,人们需求也是在不断改变,开发技术也是在不断升级,所以程序也需要考虑在今后可以方便进行功能扩展,完成升级。程序也需要具备大容量以及对其它软硬件的适应能力,而不仅仅是满足现有用户提出来的功能需求,程序在设计期间始终要以发展的理念来进行,要让程序的开发技术上具备先进性的特点,也要让程序开发成本降低,以及让程序后期运行使用时易于维护。
4.1 系统结构设计
本程序在设计结构选择上首选B/S,也是为了满足程序今后升级便利,以及程序低维护成本的要求。本程序的网络拓扑设计也会在下图展示,通过图形的方式来描述更容易理解。
在这里插入图片描述
图4.1 系统网络拓扑设计图
4.2系统功能模块设计
程序的功能在系统分析这部分已经确定了,这部分主要还是针对程序功能进行更加详细的设计,设计成果使用结构图展示直观明了,也更容易让人理解。绘制结构图采用的工具是Visio,使用它可以快速绘制出不同角色拥有的功能结构。

在这里插入图片描述

图4.2 功能结构图
4.3数据库设计
对程序的功能分析与结构设计之后,也要对程序数据存储的工具进行选择,本程序选用的数据存储仓库是Mysql,选用这个工具就需要根据该数据库的特点进行数据库文件的创建,并设计与之对应的数据表。
4.3.1数据库E-R图
设计一个数据库,不仅包含了数据库实体的设计,也包括了数据库表的结构设计,此部分内容设计的就是确认数据库的实体,并在此基础上对每个实体应该有的属性值进行分析设计,这些确认好的属性值对接下来的数据表的设计也是有很大帮助的,因为它们代表数据表里面的字段值。通常每个程序的数据库里面都具备用户这样的一个数据表。那么在分析用户这个实体的时候,都会设计出它的属性,有最基本的登录程序的账号属性,有用户的姓名属性,有用户的电话或联系地址属性等内容。一旦确认实体具备的属性之后,就可以采用相应的设计软件绘画出实体属性图,或者是实体之间的E-R图。设计E-R模型的软件有很多,这里列举常用的几个,一个是PowerDesigner,一个是Navicat绘制E-R模型,本设计模块用到的还是之前课堂上就了解并接触的Visio工具,这个工具跟办公软件Word,Excel一样都属于Office里面的一部分。使用Visio工具不仅在软件安装上快捷高效,而且它不会占用很多计算机的存储空间。
(1)超市购物系统设计了管理员实体,管理员实体属性图会在下图进行展示,此图的绘制工具是Visio工具。
在这里插入图片描述

图4.4 管理员实体属性图
(2)超市购物系统设计了用户实体,用户实体属性图会在下图进行展示,此图的绘制工具是Visio工具。
在这里插入图片描述

图4.5 用户实体属性图
(3)超市购物系统设计了商品实体,商品实体属性图会在下图进行展示,此图的绘制工具是Visio工具。
在这里插入图片描述

图4.6 商品实体属性图
4.3.2 数据库表结构
在上述内容中,已经设计出相应的E-R模型,就可以在数据库里面根据各个实体创建相应的数据表,不过在初次使用数据库工具的时候,是需要创建一个针对程序的数据库文件,有了此步操作之后,才在刚创建的数据库文件里面创建数据表,创建数据表需要涉及到字段的设计,主键的设计,字段长度与类型的设计等内容,只有设计好的数据表结构才可以按照此规则存放对应的程序数据。这里举个例子,就拿上面提到的用户实体来说吧,用户具备的属性值,比如账号,比如联系方式与电话等都可以设计成该用户数据表里面的字段,然后对这些字段设计其数据类型,长度,并选择该表的主键作为此用户数据表的唯一标志。数据库里面的各个数据表都有它们的主键,这样也是为了方便区分各个数据表。
4.1用户表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 zhanghao String 账号 是
4 mima String 密码 是
5 xingming String 姓名 是
6 xingbie String 性别 是
7 youxiang String 邮箱 是
8 shoujihaoma String 手机号码 是
9 xiangpian String 相片 是
4.2订单信息表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 dingdanbianhao String 订单编号 是
4 shangpinmingcheng String 商品名称 是
5 shangpinleixing String 商品类型 是
6 danjia Integer 单价 是
7 shuliang Integer 数量 是
8 jine Integer 金额 是
9 zhanghao String 账号 是
10 xingming String 姓名 是
11 shoujihaoma String 手机号码 是
12 goumaibeizhu String 购买备注 是
13 xiadanshijian date 下单时间 是
14 ispay String 是否支付 是
4.3商品信息评论表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 refid Integer 关联表id 是
4 userid Integer 用户id 是
5 nickname String 用户名 是
6 content String 评论内容 是
7 reply String 回复内容 是
4.4商品信息表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 shangpinmingcheng String 商品名称 是
4 shangpinleixing String 商品类型 是
5 shangpintupian String 商品图片 是
6 shangpinguige String 商品规格 是
7 shangpinjianjie String 商品简介 是
8 shangpinxiangqing String 商品详情 是
9 shengchandi String 生产地 是
10 weizhi String 位置 是
11 danjia Integer 单价 是
12 shuliang Integer 数量 是
13 shangjiariqi date 上架日期 是
14 clicktime datetime 最近点击时间 是
15 clicknum Integer 点击次数 是
4.5店员表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 gonghao String 工号 是
4 mima String 密码 是
5 yuangongxingming String 员工姓名 是
6 xingbie String 性别 是
7 youxiang String 邮箱 是
8 lianxishouji String 联系手机 是
9 xiangpian String 相片 是
4.6收藏表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 userid Integer 用户id 是
4 refid Integer 收藏id 是
5 tablename String 表名 是
6 name String 收藏名称 是
7 picture String 收藏图片 是
8 type String 类型(1:收藏,21:赞,22:踩) 是
9 inteltype String 推荐类型 是
4.7统计信息表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 tongjimingcheng String 统计名称 是
4 xiaoshoue Integer 销售额 是
5 tongjishijian date 统计时间 是
6 tongjibeizhu String 统计备注 是
4.8用户表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 username String 用户名 是
3 password String 密码 是
4 role String 角色 是
5 addtime Date 新增时间 是
4.9商品类型表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 addtime Date 创建时间 是
3 shangpinleixing String 商品类型 是

2 系统实现

对超市购物系统进行了前面的系统分析,系统设计之后,接下来的环节就是超市购物系统的具体编码实现功能的部分。这部分内容会显示系统各个功能的具体界面运行效果。
5.1 管理员功能实现
5.1.1 用户管理
管理员可以对注册用户提交的信息进行查看,添加,删除,查询操作。
在这里插入图片描述

图5.1 用户管理页面
5.1.2 店员管理
管理员可以对店员信息进行添加,删除,查询,搜索操作。
在这里插入图片描述

图5.2 店员管理页面
5.2 店员功能实现
5.2.1 商品管理
店员用户可以在商品管理里面对商品信息进行添加,修改,删除,查询操作。
在这里插入图片描述

图5.3 商品管理页面
5.2.2 订单管理
店员可以对用户提交的购物订单进行查看和搜索。
在这里插入图片描述

图5.4 订单管理页面
5.3 用户功能实现
5.3.1 个人中心
用户可以在首页登录点击个人中心修改个人资料。
在这里插入图片描述

图5.5 我的购物车页面
5.3.2 我的订单
用户登录后点击后台管理可以查看自己的订单信息,可以在订单里进行支付,修改,删除,查询操作。
在这里插入图片描述

图5.6 我的订单页面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于python的超市购物系统的设计与实现 的相关文章

随机推荐

  • C++常见STL容器基本用法

    1 vector include
  • 抓包干什么用?

    抓包是一种网络分析工具 用于捕获和分析网络流量 它可以用于各种测试和调试场景 包括但不限于以下几个方面 1 网络故障排除 当网络出现问题时 抓包可以帮助你捕获和分析数据包 以确定问题的根本原因 你可以检查数据包的源和目标地址 协议 端口等信
  • 计算机毕设项目分享(含算法) 源码+论文(三)

    1 基于机器视觉的人体姿态行为识别 人体姿态估计是通过将图片中已检测到的人体关键点正确的联系起来 从而估计人体姿态 人体关键点通常对应人体上有一定自由度的关节 比如颈 肩 肘 腕 腰 膝 踝等 通过对人体关键点在三维空间相对位置的计算 来估
  • MySQL使用DISTINCT过滤重复数据和MySQL AS:设置别名

    MySQL使用DISTINCT过滤重复数据 在 MySQL 中使用 SELECT 语句执行简单的数据查询时 返回的是所有匹配的记录 如果表中的某些字段没有唯一性约束 那么这些字段就可能存在重复值 为了实现查询不重复的数据 MySQL 提供了
  • javafx实现图形编辑器

    下面是一个简单的示例 使用JavaFX实现了一个基本的图形编辑器 可以绘制矩形和圆形 import javafx application Application import javafx scene Scene import javafx
  • java实现回文数算法

    判断一个数是否为回文数可以使用以下算法 将数字转化为字符串 初始化左右两个指针 分别指向字符串的首尾 循环比较左右指针指向的字符 如果相等则继续比较 直到左右指针相遇或者发现不相等的字符为止 如果左右指针相遇 则说明数字是回文数 返回tru
  • 分页查询,order by,where用法

    一 查询数据库ESS的Elog表格的ETime Des列 查询出的结果只显示这两列 SELECT E LOG ETime E LOG Des ROWNUM rn FROM ESS E LOG 二 分页查询ROWNUM 用法 rn变量 行号
  • 【已解决】CString与int互相转化

    本博文源于笔者在mfc下进行编码时遇到的一个问题 算是原创也算是转载 因为借鉴别人的思路 自己又转述罢了 之前看用atoi发现不行 最后用了 ttoi解决 int转化为CString CString tmp int i 5 tmp Form
  • Plist编辑器:PlistEdit Pro中文

    PlistEdit Pro是一款功能强大的plist文件编辑软件 旨在提供简单而强大的方式来修改和管理Mac OS X的配置文件 它具有直观的用户界面和丰富的功能 让你可以轻松地编辑和管理plist文件 PlistEdit Pro支持对各种
  • 【taro react】---- 解决 iOS 真机微信小程序 Input 密码框 type 切换会导致 Input 内容丢失问题

    1 问题场景 在密码登陆时 有显示和隐藏密码的功能 实现方式很简单 直接对输入 input 的 type 进行 password 和 text 值进行切换 就可以实现密码的显示和隐藏 2 实现代码 通过修改 input 的 type 值实现
  • 【taro react】---- 解决 taro 编译 H5 姓名脱敏导致的 iOS 部分低版本白屏问题

    1 姓名脱敏方法 判断传入字段是否是字符串 将字符串除第一个字符后的其他字符全部替换为 const replaceUserName name gt if isTypingMathods isString name return name r
  • 【已解决】vs2015下QtnetWork No Such File or Directory报错

    源于笔者在做qt工具时 遇到的一个问题 问题很直观 加载第三方文件时 第三方文件调用了 include
  • Goby 漏洞发布| Apusic 应用服务器 createDataSource 远程代码执行漏洞

    漏洞名称 Apusic 应用服务器 createDataSource 远程代码执行漏洞 English Name Apusic Application Server loadTree Remote Code Execution Vulner
  • Hamming space

    汉明距离表示两个相同长度字符串对应位置的不同字符的数量 对两个字符串异或运算 并统计1的个数并相减 这个数就是汉明距离
  • Tomcat远程调试

    windows环境 写一个 startup debug bat 指定tomcat的根目录 端口自己定义 rem 设置Tomcat目录 set CATALINE HOME D asd A8 2 tomcat d rem 8787为可用端口 为
  • 互联网加竞赛 python+深度学习+opencv实现植物识别算法系统

    0 前言 优质竞赛项目系列 今天要分享的是 基于深度学习的植物识别算法研究与实现 学长这里给一个题目综合评分 每项满分5分 难度系数 4分 工作量 4分 创新点 4分 更多资料 项目分享 https gitee com dancheng s
  • test和我说过

    27车型管理 年代需提示 SOP当年时间 且只显示两位数 如2024只最示24未部署生产 29车型管理 网络选项值不全未部署生产 31车型管理 系统需限制车型计划开始时间与结束时间需包含在车型管理开始时间与结束时间之间未部署uat 需要提手
  • MySQL SELECT:数据表查询语句

    在 MySQL 中 可以使用 SELECT 语句来查询数据 查询数据是指从数据库中根据需求 使用不同的查询方式来获取不同的数据 是使用频率最高 最重要的操作 SELECT 的语法格式如下 SELECT lt 字段列名 gt FROM lt
  • 速通Python基础语法--运算符篇

    一 算术运算符 优先级 除法的2个问题 除零异常 运行时才出现的错误 叫做 抛出异常 如果程序运行过程中 抛出异常 程序就会直接终止 后面的代码不会执行 除法的 不 截断问题 取模 求余数 乘方 开方 向下 小 取整 地板除 二 关系运算符
  • 基于python的超市购物系统的设计与实现

    摘 要 随着国内市场经济这几十年来的蓬勃发展 突然遇到了从国外传入国内的互联网技术 互联网产业从开始的群众不信任 到现在的离不开 中间经历了很多挫折 从当初的传统销售行业抵制互联网销售 到现在传统销售与网络销售的结合模式 都代表着网络购物是