收藏关注不迷路
前言
随着移动信息技术的快速发展,互联网正加速向各个行业渗透,深刻的改变和影响了现代人的日常生活[1]。以美团、饿了么等为代表的外卖平台,深刻的改变了人们的餐饮消费习惯,不仅开辟了巨大的餐饮消费第二市场,而且带动了一大批细分市场与细分需求的新的电商模式,例如社区团购等。然而,多年来针对高校校园超市外卖需求的新型电商模式的发展却较为缓慢,其中大学生消费群体是一个很特殊的群体,他们正直青春年少,思维活跃,对于新鲜事物、新型消费模式的接受程度较高[2]。因此,学生们的购物行为也引起了广大学者的关注。在针对某高校对外卖订餐行为分析之后发现,当前仅存在外卖点餐平台,却没有超市外卖相关系统。
在专业的外卖系统出现之前,超市的交易方式有两种:到店现场交易或通过电话完成交易。前者消费方式虽能满足顾客的消费体验感,但也存在缺点,例如1.浪费时间,如遇超市高峰期,需排队进出超市;2.大件商品携带不方便;3.安全性低,近几年疫情反复,超市属于人员密集之地,频繁出入公共场合存在安全隐患。后者属于传统意义上的外卖模式,通过打电话告诉商家需要的商品内容,商家会在纸张上面记录我们的点单信息和地址信息以及联系方式,再准备货物,并在下班之前送到楼下,再通知用户下楼来拿[3]。这种模式存在的缺点包括:1.效率较低(对于校园中的中小超市,同时只能有一个客户接通电话);2.信息转录频繁,可靠性较低(其实就是店主容易忘记);3.缺乏统一的调度与管理,订单量大时交易质量难以保证。基于此,我们的课题研究目标便是开发一个适合于校园环境的超市外卖系统。
一、项目介绍
根据现实需要,此系统我们设计出一下功能,主要有以下功能模板。
(1)高校超市外卖系统前台:首页、商品、公告、后台管理、购物车。
(2)商家功能:首页、个人中心、商品管理、商品分类管理、外卖配送管理、订单管理。
(2)管理员功能:首页、个人中心、用户管理、商品管理、商品分类管理、外卖配送管理、商家管理、系统管理、订单管理。
在系统的功能设计方面,高校超市外卖系统的设计目标是便于人们可以购买商品,因此抽取了满足管理员、用户基本业务需求的基本用例
二、开发环境
开发语言:Python
python框架:django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js
————————————————
三、功能介绍
1.相关技术。根据前期相关调查研究,介绍本课题要用到的相关技术。包括Django框架[9]、Pycharm开发环境、SQL Server数据库[10]介绍等。
2.外卖系统需求分析。首先对进行系统可行性分析,接着对系统功能的需求进行分析,将系统分为买家端、卖家端;
3.外卖系统设计。基于需求分析建立的结果,对系统的整体结构和数据库进行了设计,给出主要的功能流程图;
4.外卖系统实现与测试。介绍买家端、卖家端和服务器端的实现过程,以图片的形式展示了部分功能的运行效果,并展示了关键功能代码;
5.总结与展望。客观总结本次工作,对不足之处进行了分析,阐述了接下来的工作目标。
本系统设计时,确定详细功能,这些功能主要通过需求阶段的调研分析得来的,具体功能模块如下图,如图4-1所示。
图4-1 系统功能结构设计
四、核心代码
部分代码:
def users_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
if req_dict.get('role')!=None:
del req_dict['role']
datas = users.getbyparams(users, users, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, users, req_dict)
def users_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = users.createbyreq(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_session(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}
req_dict = {"id": request.session.get('params').get("id")}
msg['data'] = users.getbyparams(users, users, req_dict)[0]
return JsonResponse(msg)
def users_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "退出成功",
"code": 0
}
return JsonResponse(msg)
def users_page(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code,
"data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
req_dict = request.session.get("req_dict")
tablename = request.session.get("tablename")
try:
__hasMessage__ = users.__hasMessage__
except:
__hasMessage__ = None
if __hasMessage__ and __hasMessage__ != "否":
if tablename != "users":
req_dict["userid"] = request.session.get("params").get("id")
if tablename == "users":
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = users.page(users, users, req_dict)
else:
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = [],1,0,0,10
return JsonResponse(msg)
五、效果图
六、文章目录
目 录
摘 要 I
ABSTRACT II
目 录 II
第1章 绪论 1
1.1背景及意义 1
1.2 国内外研究概况 1
1.3 研究的内容 1
第2章 相关技术 3
2.1 Python简介 4
2.2 Django 框架介绍 6
2.3 B/S结构 4
2.4 MySQL数据库 4
第3章 系统分析 5
3.1 需求分析 5
3.2 系统可行性分析 5
3.2.1技术可行性:技术背景 5
3.2.2经济可行性 6
3.2.3操作可行性: 6
3.3 项目设计目标与原则 6
3.4系统流程分析 7
3.4.1操作流程 7
3.4.2添加信息流程 8
3.4.3删除信息流程 9
第4章 系统设计 11
4.1 系统体系结构 11
4.2开发流程设计系统 12
4.3 数据库设计原则 13
4.4 数据表 15
第5章 系统详细设计 19
5.1管理员功能模块 20
5.2用户功能模块 23
5.3前台功能模块 19
第6章 系统测试 25
6.1系统测试的目的 25
6.2系统测试方法 25
6.3功能测试 26
结 论 28
致 谢 29
参考文献 30