IT评测·应用市场-qidao123.com技术社区

标题: 基于Python(Django)+SQLite 实现(Web) 点菜管理系统 [打印本页]

作者: 星球的眼睛    时间: 2025-4-14 16:34
标题: 基于Python(Django)+SQLite 实现(Web) 点菜管理系统
点菜管理系统

课程计划使命与要求

1、使命

题目:点菜管理信息系统
问题描述:  随着网络的敏捷发展,越来越多的人开始接受乃至时依赖了网络营业的这种交易形式,传统的点菜模式不但浪费时间,服从低下,而且特别耗费本钱与人力,因此不少商家开始使用网上点菜系统。网上点菜系统是一种可以自主选择、个性化、便捷化、特色化的点餐模式,它的鼎力大举推广使用为餐厅节省了本钱,同时也解决了消费者在传统点菜时存在的不少贫困,这使得网上点菜系统敏捷霸占市场。
2、计划要求

该系统计划实现时重要从以下三个脚色方面入手进行,每个脚色具有不同功能:



三.课程计划说明书

1 需求分析

(1) 数据需求

点菜管理信息系统需要完成功能重要有:
(2) 事务需求




(3) 关系模式

(4) 数据字典

字段
范例
可否为 Null
主外码
默认值
中文名
ID
Int
NotNull
主码
菜品类编号
name
Varchar(20)
NotNull
菜品类名称
字段
范例
可否为 Null
主外码
默认值
中文名
ID
Int
NotNull
主码
菜品编号
foodType_id
Int
外码
菜品种类编号
title
Varchar(20)
NotNull
菜名
cost_time
Int
制作时间
amount
Int
NotNull
大于 0
数量
price
Float
NotNull
大于 0
价格
字段
范例
可否为 Null
主外码
默认值
中文名
ID
Int
主码
订单编号
table_id
Int
餐桌编号
food_amount
Int
菜品总数
table_price
Float
消费金额
create_time
Varchar(20)
下单时间
pay_time
Varchar(20)
付出时间
staff_id
Int
外码
负责职工编号
is-pay
Boolean
付出状态
comment
Varchar(50)
备注
字段
范例
可否为 Null
主外键
默认值
中文名
id
Int
主码
编号
orderID_id
Int
NotNull
外码
订单编号
foodID_id
Int
NotNull
外码
菜品编号
amount
Int
NotNull
大于 0
菜品数量
sum_price
Float
消费金额
comment
Varchar(50)
备注信息
status
Varchar(20)
NotNull
订单状态
start_cook_time
接单时间
end_cook_time
完成时间
字段
范例
可否为 Null
主外键
默认值
中文名
ID
Int
NotNull
主码
职工编号
citizenID
Varchar(20)
NotNull
个人 ID
name
Varchar(20)
NotNull
姓名
gender
Varchar(20)
NotNull
性别
born_date
Varchar(20)
出生日期
phone
Varchar(20)
NotNull
联系方式
address
Varchar(50)
联系地点
字段
范例
可否为 Null
主外键
默认值
中文名
ID
主码
餐桌编号
name
餐桌名字
staff_id
外码
负责职工编号
2 概要计划

(1) 实体图及 E-R 图



(2) 数据流图



3 逻辑计划


4 数据库创建

(1) 创建数据库

Django 中默认使用 SQLite 作为数据库,也可将其换为 MySQL、Oracle 等,仅需提供连接地点、用户名及暗码。

(2) 菜品类表创建

  1. CREATE TABLE OrderSystem_foodtype
  2. (
  3.   ID  INTEGER   NOT NULL  PRIMARY KEY AUTOINCREMENT,
  4.   name VARCHAR (20) NOT NULL
  5. );
复制代码
(3) 菜品表创建

  1. CREATE TABLE OrderSystem_food
  2. (
  3.     title       VARCHAR (20) NOT NULL,
  4.     amount      INTEGER      NOT NULL,
  5.     price       REAL         NOT NULL,
  6.     ID          INTEGER      NOT NULL  PRIMARY KEY AUTOINCREMENT,
  7.         foodType_id INTEGER      NOT NULL  REFERENCES
  8.                 OrderSystem_foodtype (ID)  DEFERRABLE INITIALLY DEFERRED,
  9.     cost_time   INTEGER      NOT NULL
  10. );
复制代码
(4) 订单表创建

  1. CREATE TABLE OrderSystem_order(
  2.     ID          INTEGER  NOT NULL  PRIMARY KEY AUTOINCREMENT,
  3.     table_id    INTEGER  NOT NULL,
  4.     food_amount INTEGER  NOT NULL,
  5.     total_price REAL     NOT NULL,
  6.     staff_id    INTEGER  NOT NULL  REFERENCES
  7.                 OrderSystem_staff (ID) DEFERRABLE INITIALLY DEFERRED,
  8.     is_pay      BOOL     NOT NULL,
  9.     create_time DATETIME NOT NULL,
  10.         pay_time    DATETIME,
  11.         comment     VARCHAR (50) NOT NULL
  12. );
复制代码
(5) 订单明细表创建

  1. CREATE TABLE OrderSystem_orderitem
  2. (
  3.     id              INTEGER      NOT NULL  PRIMARY KEY AUTOINCREMENT,
  4.     amount          INTEGER      NOT NULL,
  5.     sum_price       REAL         NOT NULL,
  6.     orderID_id      INTEGER      NOT NULL  REFERENCES
  7.                 OrderSystem_order (ID) DEFERRABLE INITIALLY DEFERRED,
  8.     end_cook_time   TIME,
  9.     start_cook_time TIME,
  10.     status          INTEGER      NOT NULL,
  11.     comment         VARCHAR (50) NOT NULL,
  12.         foodID_id       INTEGER      REFERENCES
  13.         OrderSystem_food (ID) DEFERRABLE INITIALLY DEFERRED
  14. );
复制代码
(6) 职工信息表创建

  1. CREATE TABLE OrderSystem_staff
  2. (
  3.     ID        INTEGER      NOT NULL  PRIMARY KEY AUTOINCREMENT,
  4.     citizenID VARCHAR (20) NOT NULL,
  5.     name      VARCHAR (10) NOT NULL,
  6.     gender    VARCHAR (5)  NOT NULL,
  7.     born_date DATE,
  8.     phone     VARCHAR (11) NOT NULL,
  9.     address   VARCHAR (50) NOT NULL
  10. );
复制代码
(7) 餐桌信息表创建

  1. CREATE TABLE OrderSystem_staff_table
  2. (
  3.   ID    INTEGER   NOT NULL PRIMARY KEY,
  4.   name   VARCHAR (20) NOT NULL,
  5.   staff_id INTEGER   NOT NULL  REFERENCES
  6.           OrderSystem_staff (ID) DEFERRABLE INITIALLY DEFERRED
  7. );
复制代码
5 系统实现

(1)系统功能模块图


(2)前台开发平台的选择


(3)计划与实现

6 编程与调试总结

在前端遇到的最多的问题就是对齐,在 JavaScript 以及 jQuery 的操作中,经常会发生无法绑定的情况,厥后知道是由于我们的页面是动态加载,一次绑定无法将新的 HTML 元素也进行绑定,最后统一将绑定的操作放在了动态加载之后,而管理和后厨页面中的一些元素需要隔 10 秒、30 秒刷新餐桌信息和上菜信息的就需要在刷新的函数后面再进行绑定。
用 Django 写后端照旧比力容易的,但是由于不是很熟悉这个框架,以是在 url 的路由设置上没有很清楚的分界,将管理与顾客点菜子系统放在了同一个 app 中,固然便于处理数据,但是导致一个 app 的内容很多,不便于调试时查找,使得代码可读性变低,但好在 Django 框架将后端分为了页面视图 views、页面模板 templates 和数据关系模型 models 等,代码的耦合度不至于很高。
在做管理页面时遇到了数据库关系表中的外键在被参照表中数据被删除时参照表需不需要级联删除的问题,由于一开始将其计划成了 SET_NULL,但是实际调试时发现数据库报错,将 SQL 语句放在数据库中执行发现无法将其设为 NULL,最后查阅了相干问题的资料后将其计划成可以为空。
7 课程计划心得体会

这次的数据库课程计划只有一个星期的时间,而我们需要将在数据库课堂上和实验中学习到的知识运用到实际的管理系统中,还需要计划相应的界面,这着实不是一件容易的事情。
确定选择“点菜管理系统”这个题目后,我们通过查找相干资料以及自己对点菜系统的理解确定了需要做的几个重要功能:点菜、结账、查账等,然后一点一点拓展到现在的全部功能。功能的完善大多是在开发过程中由于实际需要而发现问题并解决的,另有的是为了更人性化更得当用户角度使用而添加的,相应的数据库表单也是在开发过程中逐步完善。
但是如许的开发是有问题的,比如订单的几个数据项前前后后改了很多次,由于生成订单需要前后端沟通,每次修改也就会耗费许多时间来进行调试,而假如一开始就能详细地对订单表进行描述,在后期不需要添加新的主属性,那么肯定会减少很多可压缩的调试时间。
在开发技术方面,这次实验了 Python 的 Web 框架 Django 作为后端的 Web 应用,后端的数据库使用了 Django 推荐的 SQLite ,固然不得当实际生产环境,但是便于上手,也使得我们能够在系统的其他地方进行一点点细节上的打磨,前端使用了 Bootstrap4 + jQuery 来开发。
在开发前期,许多时间用在了前端的细节优化上,通过 Bootstrap 将界面统一风格,也因此将管理页面中订单和上菜提醒直观体现出来,不需要进入二级菜单就能将上菜信息传达上来。在后期逐渐将数据存储所需的约束与触发操作完善,使得各个关系合理存在。
这次数据库课设对我们来说是一个综合能力的磨练,也是将数据库系统与所学知识的结合,通过这次课设,我对数据库计划能力有了很大进步,也学会了在应用中引入数据库、维护数据库,不外所体现的问题也是以后需要不断学习、实践的地方。
8 参考文献

[1] 范长青. 智能点菜系统计划开发与引用[J].微型电脑应用. 2019-06-14
[2] 石爱好. 基于 SQL Server 2012 数据库的应用及研究[J].电脑迷. 2017(03)
[3] 单立娟. 数据库技术在移动点菜系统上的应用[J].数字技术与应用. 2016-08-15
[4] 于卓立,刘沙沙,苏家鹏,宋文苑,邹晓琳. 智能餐桌系统计划与实现[J].电脑编程技术与维护. 2014-12-18
[5] 李源. 餐厅点菜系统的计划与实现[J].电子技术与软件工程. 2015-10-16
[6] 王欣. 智能电子点菜系统的研究[J].北京交通大学. 2017-06-01
[7] 尹亮. 餐厅点菜及后厨系统的计划与实现[J].电子科技大学. 2015-03-15
界面截图

主界面


点菜界面


后厨界面


管理界面

餐桌负责状态表中绿色表示有订单,红色表示后厨已经做好了菜,处于等候上菜阶段。
餐桌和上菜信息每 30 秒和每 10 秒动态刷新,仅刷新指定地区。
点击负责人可切换该桌负责人。

订单管理界面

点击订单号进入订单详情,绿色代表已付出订单,红色代表未付出订单。

订单详情界面


批量结账界面

点击单条订单可进入相应订单详情页。

菜品管理界面


使用

  1. cd FoodOrder
  2. python manage.py runserver
复制代码
打开 http://127.0.0.1:8000/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4