⛄博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java、Python、机器学习、大数据、爬虫等技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等。
✅文末获取联系✅
目录
1 项目介绍
本文的研究目标是以高校校园外卖点餐为对象,使其南京某高校校园外卖点餐为目标,使得南京某高校校园外卖点餐的信息化体系发展水平提高。论文的研究内容包括对个人中心、美食分类管理、用户管理、商家管理、美食信息管理、工作人员管理、安全检查管理、系统管理、订单管理等方面进行了研究。在线平台以当前应用最为广泛的Python技术为基础,结合了目前应用最为广泛的嵌入式平台,集成了B/S体系结构。数据库选择简便高效的MySQL。利用网站进行管理,不仅可以解除时间空间的束缚,还可以节省人力成本,将数据和库存一目了然地呈现在眼前,方便管理。南京某高校校园外卖点餐系统目前的管理工作使得整个系统操作简便,界面亲切,实用性,安全,高效率,能准确完成全部过程。南京某高校校园外卖点餐系统大大提高了高效严格的信息记录和交流方面的效率。
2 技术选型
此系统基于Python平台,采用B/S架构模式,使用技术有Python+Django+Vue、爬虫等,数据库使用的是MySQL,采用Maven构建工具,可使用开发软件有 idea/navicat/vscode,都能够正常运行。
3 功能需求分析
(1)管理员用例分析图
(2)用户用例分析图
(3)商家用例分析图
(4)工作人员用例分析图
4 系统总体设计
4.1系统功能模块设计
4.2 数据库概念结构设计
(1)美食信息实体属性图
(2)系统公告实体属性图
(3)用户实体属性图
(4)公告信息实体属性图
(5)商家实体属性图
(6)商家实体属性图
3.3 数据库逻辑结构设计
表3.1订单表
表3.2美食信息表
表3.3美食信息评论表
表3.4购物车表
表3.5用户表
表3.6安全检查表
表3.7美食分类表
表3.8商家表
5 项目效果图
(1)用户注册界面
(2)系统首页
(3)美食信息界面
(4)美食详情界面
(5)购物车界面
(6)个人中心界面
(7)后台登录界面
(8)用户管理界面
(9)商家管理界面
(10)美食信息管理界面
(11)订单管理界面
(12)商家管理界面
6 代码实现
def shangjia_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = shangjia.createbyreq(shangjia, shangjia, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = "用户已存在,请勿重复注册!"
return JsonResponse(msg)
def shangjia_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
datas = shangjia.getbyparams(shangjia, shangjia, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
try:
__sfsh__= shangjia.__sfsh__
except:
__sfsh__=None
if __sfsh__=='是':
if datas[0].get('sfsh')!='是':
msg['code']=other_code
msg['msg'] = "账号已锁定,请联系管理员审核!"
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, shangjia, req_dict)
def shangjia_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "登出成功",
"code": 0
}
return JsonResponse(msg)
def shangjia_resetPass(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
columns= shangjia.getallcolumn( shangjia, shangjia)
try:
__loginUserColumn__= shangjia.__loginUserColumn__
except:
__loginUserColumn__=None
username=req_dict.get(list(req_dict.keys())[0])
if __loginUserColumn__:
username_str=__loginUserColumn__
else:
username_str=username
if 'mima' in columns:
password_str='mima'
else:
password_str='password'
init_pwd = '123456'
recordsParam = {}
recordsParam[username_str] = req_dict.get("username")
records=shangjia.getbyparams(shangjia, shangjia, recordsParam)
if len(records)<1:
msg['code'] = 400
msg['msg'] = '用户不存在'
return JsonResponse(msg)
eval('''shangjia.objects.filter({}='{}').update({}='{}')'''.format(username_str,username,password_str,init_pwd))
return JsonResponse(msg)
def shangjia_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'] = shangjia.getbyparams(shangjia, shangjia, req_dict)[0]
return JsonResponse(msg)
def shangjia_default(request):
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
req_dict.update({"isdefault":"是"})
data=shangjia.getbyparams(shangjia, shangjia, req_dict)
if len(data)>0:
msg['data'] = data[0]
else:
msg['data'] = {}
return JsonResponse(msg)
def shangjia_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")
#获取全部列名
columns= shangjia.getallcolumn( shangjia, shangjia)
#当前登录用户所在表
tablename = request.session.get("tablename")
#authColumn=list(__authTables__.keys())[0]
#authTable=__authTables__.get(authColumn)
# if authTable==tablename:
#params = request.session.get("params")
#req_dict[authColumn]=params.get(authColumn)
'''__authSeparate__此属性为真,params添加userid,后台只查询个人数据'''
try:
__authSeparate__=shangjia.__authSeparate__
except:
__authSeparate__=None
if __authSeparate__=="是":
tablename=request.session.get("tablename")
if tablename!="users" and 'userid' in columns:
try:
req_dict['userid']=request.session.get("params").get("id")
except:
pass
#当项目属性hasMessage为”是”,生成系统自动生成留言板的表messages,同时该表的表属性hasMessage也被设置为”是”,字段包括userid(用户id),username(用户名),content(留言内容),reply(回复)
#接口page需要区分权限,普通用户查看自己的留言和回复记录,管理员查看所有的留言和回复记录
try:
__hasMessage__=shangjia.__hasMessage__
except:
__hasMessage__=None
if __hasMessage__=="是":
tablename=request.session.get("tablename")
if tablename!="users":
req_dict["userid"]=request.session.get("params").get("id")
# 判断当前表的表属性isAdmin,为真则是管理员表
# 当表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
# 当前表也是有管理员权限的表
if __isAdmin__ == "是" and 'shangjia' != 'forum':
if req_dict.get("userid") and 'shangjia' != 'chat':
del req_dict["userid"]
else:
#非管理员权限的表,判断当前表字段名是否有userid
if tablename!="users" and 'shangjia'[:7]!='discuss'and "userid" in shangjia.getallcolumn(shangjia,shangjia):
req_dict["userid"] = request.session.get("params").get("id")
#当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
try:
__authTables__=shangjia.__authTables__
except:
__authTables__=None
if __authTables__!=None and __authTables__!={}:
try:
del req_dict['userid']
# tablename=request.session.get("tablename")
# if tablename=="users":
# del req_dict['userid']
except:
pass
for authColumn,authTable in __authTables__.items():
if authTable==tablename:
params = request.session.get("params")
req_dict[authColumn]=params.get(authColumn)
username=params.get(authColumn)
break
q = Q()
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] =shangjia.page(shangjia, shangjia, req_dict, request, q)
return JsonResponse(msg)
def shangjia_autoSort(request):
'''
.智能推荐功能(表属性:[intelRecom(是/否)],新增clicktime[前端不显示该字段]字段(调用info/detail接口的时候更新),按clicktime排序查询)
主要信息列表(如商品列表,新闻列表)中使用,显示最近点击的或最新添加的5条记录就行
'''
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")
if "clicknum" in shangjia.getallcolumn(shangjia,shangjia):
req_dict['sort']='clicknum'
elif "browseduration" in shangjia.getallcolumn(shangjia,shangjia):
req_dict['sort']='browseduration'
else:
req_dict['sort']='clicktime'
req_dict['order']='desc'
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = shangjia.page(shangjia,shangjia, req_dict)
return JsonResponse(msg)
}
7 总结
本论文的研究对象为高校校园外卖点餐体系。目的在于为高校提供一个合理、高效的管理体系。其主要作用是有效地处理高校校园外卖点餐信息的问题。
整个体系由管理员、用户、商家和工作人员四大部分组成。因为本软件是为方便快捷方便的实际工作过程而设计的,因此具有很好的实用性和实用性。
在建立这个体系时,我们进行了很多调查,通过对不同观点进行了调查,并借鉴了各行业的运作方式,对问题进行了研究和研究。找出一个合理的解决办法。结果表明,本软件的研制,能很好地解决目前运作成本高、工作效率等问题。
在设计的时候,我们总是按照软件的设计流程,详情的需求分析、大纲设计、详情设计、界面设计和代码设计。该流程是以模块式的方式进行的。在系统接口的设计上,根据使用者的需求和电脑的使用程度,初始接口的设计相当的简洁和实际。各用户可以在“欢迎”的界面上进行,以便于用户的工作。
8 源码获取或咨询
关注公众号:计算机编程吧
关注后 会不定时更新学习资源,发放福利哟!
感谢大家能够积极点赞、收藏、关注、评论哦 ,更多推荐:计算机毕业设计
👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻如果大家有任何疑虑,请下方昵称位置详细咨询。