Python+MySQL制作一个简易的餐厅点餐系统
📅 2026/7/1 9:22:02
👁️ 次浏览
下面给你一个基于 Python MySQL 的简易餐厅点餐系统示例适合课程设计 / 练手项目。特点是结构清晰、代码少、易扩展。一、功能设计简易版✅ 菜品管理增删查✅ 顾客下单✅ 订单查看✅ 订单结算二、数据库设计MySQL1️⃣ 创建数据库CREATE DATABASE restaurant DEFAULT CHARSET utf8mb4; USE restaurant;2️⃣ 菜品表dishesCREATE TABLE dishes ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price DECIMAL(6,2) NOT NULL, stock INT DEFAULT 100 );3️⃣ 订单表ordersCREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, table_no INT NOT NULL, total_price DECIMAL(8,2), create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP );4️⃣ 订单明细表order_itemsCREATE TABLE order_items ( id INT PRIMARY KEY AUTO_INCREMENT, order_id INT, dish_id INT, quantity INT, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (dish_id) REFERENCES dishes(id) );三、Python 环境准备pip install pymysql四、Python 连接 MySQLdb.pyimport pymysql def get_conn(): return pymysql.connect( hostlocalhost, userroot, password123456, # 改成你的密码 databaserestaurant, charsetutf8mb4, cursorclasspymysql.cursors.DictCursor )五、核心功能实现1️⃣ 显示菜单from db import get_conn def show_menu(): conn get_conn() with conn.cursor() as cursor: cursor.execute(SELECT * FROM dishes) dishes cursor.fetchall() print(\n 菜品列表 ) for d in dishes: print(f{d[id]}. {d[name]} {d[price]} 库存:{d[stock]}) conn.close()2️⃣ 下单功能def create_order(table_no): conn get_conn() try: with conn.cursor() as cursor: cursor.execute( INSERT INTO orders (table_no) VALUES (%s), (table_no,) ) order_id cursor.lastrowid while True: show_menu() dish_id input(输入菜品ID0结束) if dish_id 0: break qty int(input(数量)) cursor.execute( SELECT price, stock FROM dishes WHERE id%s, (dish_id,) ) dish cursor.fetchone() if not dish or dish[stock] qty: print(库存不足) continue cursor.execute( INSERT INTO order_items (order_id,dish_id,quantity) VALUES (%s,%s,%s), (order_id, dish_id, qty) ) cursor.execute( UPDATE dishes SET stockstock-%s WHERE id%s, (qty, dish_id) ) conn.commit() calc_total(order_id) print(下单成功) finally: conn.close()3️⃣ 计算订单总价def calc_total(order_id): conn get_conn() with conn.cursor() as cursor: sql SELECT SUM(d.price*i.quantity) total FROM order_items i JOIN dishes d ON i.dish_idd.id WHERE i.order_id%s cursor.execute(sql, (order_id,)) total cursor.fetchone()[total] cursor.execute( UPDATE orders SET total_price%s WHERE id%s, (total, order_id) ) conn.commit() conn.close()4️⃣ 查看订单def show_orders(): conn get_conn() with conn.cursor() as cursor: cursor.execute( SELECT o.id,o.table_no,o.total_price,o.create_time, d.name,i.quantity FROM orders o JOIN order_items i ON o.idi.order_id JOIN dishes d ON i.dish_idd.id ORDER BY o.id DESC ) for row in cursor.fetchall(): print(row) conn.close()六、主程序入口main.pyfrom order import create_order, show_orders from menu import show_menu def main(): while True: print(\n1. 查看菜单) print(2. 点餐) print(3. 查看订单) print(0. 退出) choice input(选择) if choice 1: show_menu() elif choice 2: table int(input(桌号)) create_order(table) elif choice 3: show_orders() elif choice 0: break if __name__ __main__: main()七、运行效果示例 菜品列表 1. 鱼香肉丝 18.00 库存:50 2. 宫保鸡丁 22.00 库存:40 输入菜品ID0结束1 数量2 下单成功八、可扩展方向加分项✅ 管理员登录✅ 图形界面Tkinter / PyQt✅ Web 版Flask / Django✅ 支付模拟✅ 报表统计日营业额
让Windows任务栏呼吸:用透明美学重新定义你的桌面空间 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB
你是否曾盯着Windows桌…
📅 2026/7/1 9:22:02
断言是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判断表达式放在语句中,用于排除在设计的逻辑上不应该产生的情况。一个函数总需要输入在一定的范围内的参数,那么程序员就可以对该参数使用断言,以迫…
📅 2026/7/1 9:22:02
更多请点击:
https://intelliparadigm.com
第一章:AI生成单元测试到底靠不靠谱?实测12个主流工具后,我发现了这4个致命短板 过去三个月,我系统评测了包括GitHub Copilot、Tabnine、Amazon CodeWhisperer、JetBrains A…
📅 2026/7/1 9:22:02
6月24日-26日,2026世界移动通信大会(MWC上海)圆满落幕,大会以“众智启新(The IQ Era)”为主题,围绕移动AI、智能基建、智联共生等核心方向,聚焦网络智能化、产业数字化转型路径。展会…
📅 2026/7/1 10:30:16
本文将介绍我曾经做过的一个项目的服务器架构和服务器编程的一些重要细节。一、程序运行环境操作系统:centos 7.0编译器:gcc/g 4.8.3 cmake 2.8.11mysql数据库:5.5.47项目代码管理工具:VS2013一、程序结构该程序总共有17个线程…
📅 2026/7/1 10:30:16
5个关键功能让你的《怪物猎人:世界》狩猎体验全面升级:HunterPie实战指南 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.c…
📅 2026/7/1 10:30:16
目标
交叉编译ncurses静态库,为嵌入式应用提供文本界面功能。
编译准备
操作系统:Ubuntu 18.04 LTS交叉编译工具:arm-linux-gnueabincurses源码:Stable release source 2026年6月30日 最新版本是6.6,其他版本历史版…
📅 2026/7/1 10:30:16
目录
1. win11系统版本配置信息确认
1.1. 系统详情
1.2. 显卡驱动更新
2. python虚拟环境准备
2.1. 安装Miniconda
2.2. 命令行启动conda
3. 安装python核心库
3.1. 安装pytorch
3.2. 安装Ultralytics YOLOv8
3.3. 安装Jupyter
4. 进行目标识别
4.1. 进入conda虚拟…
📅 2026/7/1 10:30:16
VisualCppRedist AIO:一站式VC运行库解决方案,彻底告别DLL缺失错误 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist
还在为"缺少MSVC…
📅 2026/7/1 10:28:16
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/30 10:04:37
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/30 6:54:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39