200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 计算机毕业设计Python+django 网上外卖订餐系统(源码+系统+mysql数据库+Lw文档)

计算机毕业设计Python+django 网上外卖订餐系统(源码+系统+mysql数据库+Lw文档)

时间:2021-02-16 05:34:45

相关推荐

计算机毕业设计Python+django 网上外卖订餐系统(源码+系统+mysql数据库+Lw文档)

项目介绍

本论文主要论述了如何使用python语言开发一个网上订餐系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述网上订餐系统 的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。

网上订餐系统的主要使用者分为管理员、商家和用户,实现功能包括管理员:首页、个人中心、个人信息、菜品类型管理,论坛管理、系统管理、商家管理、菜品信息管理、投诉建议管理、用户管理、订单信息管理、评价信息管理等等。商家管理:个人中心、个人信息、菜品信息、投诉建议管理、订单信息管理、评价信息等功能。用户管理:个人中心、个人信息、投诉建议管理、订单信息管理、评价信息、我的收藏等等。由于本网站的功能模块设计比较全面,所以使得整个网上订餐系统 的过程得以实现。

登录模块主要满足了管理员以及用户的权限登录

管理员以及用户登录后均可进行添加信息操作,添加信息模块顺序图如图

开发环境

开发语言:Python

python框架:django

软件版本:python3.7/python3.8

数据库:mysql 5.7或更高版本

数据库工具:Navicat11

开发软件:PyCharm/vs code

前端框架:vue.js

可开发框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发

系统截图

用户在前台菜品信息中可以查看菜品的详情页面,并可以进行下单、支付、收藏等操作如图

管理员输入个人的账号、密码登录系统,这时候系统的数据库就会在进行查找相关的信息,如果我们输入的账号、密码和验证码不正确,数据库就会提示出错误的信息提示,同时会提示管理员重新输入输入自己的账号、密码和验证码,直到账号密码输入成功后,会提登录成功的信息。

管理员对菜品信息管理信息进行上传、删除、修改以及查看等操作。程序效果图如下图

管理员对用户信息进行用户名、用户姓名、密码性别等等进行添加、查看、修改以及删除等操作。程序效果图如下图

管理员对订单信息编辑订单编号、商家号、菜品编号、菜品名称、数量、价格、总金额等等进行删除、修改以及查看等操作。程序效果图如下图

在商家管理页面可以查看菜品编号、城市、菜品名称、菜品类型、价格、数量等内容,并可根据需要对添加、删除、修改以及查看详细内容操作

1 绪论 1

1.1 研究背景 1

1.2 研究现状 1

1.3 研究内容 2

2 系统关键技术 3

2.1 python技术 3

2.2Dango框架 3

2.3 MYSQL数据库 4

2.4 B/S结构 4

3 系统分析 5

3.1 可行性分析 5

3.1.1 技术可行性 5

3.1.2经济可行性 5

3.1.3操作可行性 5

3.2 系统性能分析 5

3.3 系统功能分析 6

3.5系统流程分析 7

3.5.1登录流程 7

3.5.2注册流程 8

3.5.3添加信息流程 8

3.5.4删除信息流程 9

4系统设计 10

4.1系统概要设计 10

4.2系统结构设计 10

4.3系统顺序图设计 11

4.3.1登录模块顺序图 11

4.3.2添加信息模块顺序图 11

4.4数据库设计 12

4.4.1数据库E-R图设计 12

4.3.2数据库表设计 14

5 .1系统的实现 17

5.2 管理员功能模块 18

5.3商家功能模块 21

5.4.用户前后台管理 21

6 系统测试 23

6.1 测试定义 23

6.2 测试目的 23

6.3测试方案 24

6.4系统分析 26

7 结论 27

参考文献 28

谢辞 29

关键代码

def caipinxinxi_register(request):if request.method in ["POST", "GET"]:msg = {'code': normal_code, "msg": mes.normal_code}req_dict = request.session.get("req_dict")error = caipinxinxi.createbyreq(caipinxinxi, caipinxinxi, req_dict)if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def caipinxinxi_login(request):if request.method in ["POST", "GET"]:msg = {'code': normal_code, "msg": mes.normal_code}req_dict = request.session.get("req_dict")datas = caipinxinxi.getbyparams(caipinxinxi, caipinxinxi, req_dict)if not datas:msg['code'] = password_error_codemsg['msg'] = mes.password_error_codereturn JsonResponse(msg)req_dict['id'] = datas[0].get('id')return Auth.authenticate(Auth, caipinxinxi, req_dict)def caipinxinxi_logout(request):if request.method in ["POST", "GET"]:msg = {"msg": "登出成功","code": 0}return JsonResponse(msg)def caipinxinxi_resetPass(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code}req_dict = request.session.get("req_dict")error = caipinxinxi.updatebyparams(caipinxinxi,caipinxinxi, req_dict)if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def caipinxinxi_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'] = caipinxinxi.getbyparams(caipinxinxi, caipinxinxi, req_dict)[0]return JsonResponse(msg)def caipinxinxi_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")#当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的try:__authTables__=caipinxinxi.__authTables__except:__authTables__=Noneif __authTables__!=None and __authTables__!={}:for authColumn,authTable in __authTables__.items():if authTable==tablename:params = request.session.get("params")req_dict[authColumn]=params.get(authColumn)break#当项目属性hasMessage为”是”,生成系统自动生成留言板的表messages,同时该表的表属性hasMessage也被设置为”是”,字段包括userid(用户id),username(用户名),content(留言内容),reply(回复)#接口page需要区分权限,普通用户查看自己的留言和回复记录,管理员查看所有的留言和回复记录try:__hasMessage__=caipinxinxi.__hasMessage__except:__hasMessage__=Noneif __hasMessage__=="是":tablename=request.session.get("tablename")if tablename!="users":req_dict["userid"]=request.session.get("params").get("id")if tablename == "users" and req_dict.get("userid") != None:del req_dict["userid"]else:# 判断当前表的表属性isAdmin,为真则是管理员表# 当表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)__isAdmin__ = NoneallModels = apps.get_app_config('main').get_models()for m in allModels:if m.__tablename__==tablename:try:__isAdmin__ = m.__isAdmin__except:__isAdmin__ = Nonebreak# 当前表也是有管理员权限的表if __isAdmin__ == "是":del req_dict["userid"]else:#非管理员权限的表,判断当前表字段名是否有useridif tablename!="users" and "userid" in caipinxinxi.getallcolumn(caipinxinxi,caipinxinxi):req_dict["userid"] = request.session.get("params").get("id")msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \msg['data']['pageSize'] =caipinxinxi.page(caipinxinxi, caipinxinxi, req_dict)return JsonResponse(msg)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。