项目介绍

本论文主要论述了如何使用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)

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

  1. 计算机毕业设计Android手机校园外卖订餐APP(源码+系统+mysql数据库+Lw文档)

    项目介绍 本外卖订餐系统是一个Android 客户端+JSP Servlet服务端应用程序,启动Android上的应用程序后可以登录.查看菜品等. 该在线外卖订餐系统app毕业设计系统主要是分为手机端 ...

  2. 计算机毕业设计Python+djang公务员考试信息管理系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着社会的发展,近些年来的毕业生大多数会选择考研,考公员和考试教师资格证以增加自己在未来社会中的竞争能力.为了让这些有志之士能够有一个更好的学习和交流平台,我们通过计Python+djang ...

  3. java计算机毕业设计基于ssm的协同过滤算法的电影推荐系统(源代码+数据库+Lw文档)

    项目介绍 "互联网+"的战略实施后,很多行业的信息化水平都有了很大的提升.但是目前很多行业的管理仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,使得对人 ...

  4. 计算机毕业设计Python+django大学生闲置二手交易商城平台(源码+系统+mysql数据库+Lw文档)

    项目介绍 当前在市场经济的快速发展下,我国的经济形势也在不断的发展壮大.特别是在计算机信息化的普及下,新的互联网+业态促使着零售业在不断的转型发展.随着B2C.O2O的不断发展,传统的零售实体都受到了 ...

  5. 计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)

    项目介绍 据世界动物保护协会统计,全世界大概有5亿只流浪狗和散养的狗和大致同样数量的流浪猫,而这些主要源于主人的弃养.同时,在很多地区,狗和猫都处于散养状态,这部分的动物,也经常会变成流浪动物.猫和狗 ...

  6. 计算机毕业设计Python+django的零食销售商城网站(源码+系统+mysql数据库+Lw文档)

    项目介绍 ​随着人们生活条件的改善,人们对生活的追求也越来越高.在闲暇之时品尝上美味的零食,是当前很多人的一个休闲方式.当前临时市场鱼目混杂,种类繁多很多消费者不知道如何去选购更加美味可口的零食.尤其 ...

  7. 计算机毕业设计Python+django的火车票售票系统(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着现代火车售票管理的快速发展,可以说火车售票管理已经逐渐成为现代火车售票管理过程中最为重要的部分之一.但是一直以来我国传统的火车售票管理并没有建立一套完善的行之有效的火车售票管理系统,传统 ...

  8. java计算机毕业设计校园旺角超市外卖平台源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计校园旺角超市外卖平台源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计校园旺角超市外卖平台源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: ...

  9. 计算机毕业设计Java网上书店管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java网上书店管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java网上书店管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  10. 基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA网上图书销售系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

最新文章

  1. bat窗口大小设置_8-Flink中的窗口
  2. redis常用命令与特性
  3. 搭建 ELK 集群 kafka filebeat kibana logstash zookeeper elasticsearch
  4. NYOJ 99单词拼接(有向图的欧拉(回)路)
  5. sql更改完整模式报错_SQL的完整形式是什么?
  6. java 两个线程同步_Java 多线程(二)—— 线程的同步
  7. 函数式编程:如何高效简洁地对数据查询与变换
  8. java yml文件_yml文件内容映射到pojo
  9. IntelliJ IDEA使用技巧——关于版本控制(上)
  10. iOS UINavigationBar-导航栏、UINavigationItem-导航项
  11. [转帖]Android Bitmap内存限制OOM,Out Of Memory
  12. 关于高校房产管理系统中主要管理模块都有哪些
  13. 【批处理DOS-CMD命令-汇总和小结】-输出/显示命令——echo
  14. xp下固态硬盘测试软件,XP真的老矣?SSD实战XP/Win7/Win8系统
  15. 51单片机之控制转移指令SJMP、LJMP等
  16. html常用代码大全
  17. BouncyCastle库
  18. PCB板不同材质区别
  19. 手动删除oracle数据库
  20. 我的世界红石音乐高级教程 python辅助制作工具

热门文章

  1. 小红帽Linux系统命令重启,Linux系统常用命令之一
  2. otn与stn网络_光通信网络
  3. ubuntu录制屏幕傻瓜操作 ubuntu screen capture
  4. 很多的计算机英语词汇是通过,计算机英语词汇隐喻分析
  5. 环境管理体系ISO14001认证常见的审核问题有哪些?
  6. 王笑京:国家新一代智能交通框架与实施进展
  7. 云计算(期末复习题含答案)
  8. 爱立信车联网招聘DevOps工程师(地点:广州)
  9. 7 在使用计算机时要注意防 .,Windows7系统使用移动硬盘的七大注意事项
  10. 如何优化cocos2d的使用内存