ffe44f4cb1518d61bd0bd58e56852ba1a513a251
- ISS 移除 onlyifdoesntexist 确保安装目录 db.sqlite3 始终更新 - .gitignore 忽略所有 sqlite3 文件 - 前端翻页组件和样式更新
学校订餐菜单生成器
自动生成周一至周五的营养菜单,支持导出 Excel,含后台菜品管理。
- 后端:Django + Django REST Framework + openpyxl
- 前端:React 18 + Vite
功能
- 两种生成模式
- 全部自动生成:荤菜、素菜、汤、主食全部自动分配,一周内尽量不重复
- 自选两个荤菜:每天使用所选 2 个荤菜,素菜等其余自动生成
- 每天固定 2 荤 2 素,一次随机生成营养 A / B 两套菜单,可逐道替换菜品
- 菜品带菜系分类(本帮/家常/川/粤/鲁/湘/江浙/西北/面点小吃),替换时按菜系分组选择
- 一键导出带样式的 Excel(左右并排 A/B 两套,各自带配料明细与营养成分分析)
- 后台管理添加/编辑/停用菜品,支持批量导入
快速启动
双击 start.bat(首次会自动安装依赖并写入示例菜品数据)。
- 前端页面:http://localhost:5173
- 后台管理:http://127.0.0.1:8000/admin (账号
admin/ 密码admin123)
手动启动
# 后端
python -m venv .venv
.venv\Scripts\pip install -r backend\requirements.txt
.venv\Scripts\python backend\manage.py migrate
.venv\Scripts\python backend\manage.py seed_dishes # 写入示例菜品
.venv\Scripts\python backend\manage.py runserver 0.0.0.0:8000
# 前端(另开终端)
cd frontend
npm install
npm run dev
目录结构
backend/
config/ # Django 项目配置
meals/ # 主应用:菜品模型、生成逻辑、Excel 导出
management/commands/seed_dishes.py # 示例菜品
requirements.txt
frontend/
src/App.jsx # 菜单生成页面
src/index.css # 页面样式
start.bat # 一键启动脚本
API 说明
| 方法 | 路径 | 说明 |
|---|---|---|
| GET/POST/PUT/DELETE | /api/dishes/ |
菜品增删改查(?type=meat/veg/soup/staple 过滤) |
| POST | /api/dishes/bulk/ |
批量导入菜品(需管理员登录),支持中文类型名与菜系 |
| POST | /api/menu/generate/ |
生成 A/B 两套周菜单 |
| POST | /api/menu/export/ |
将生成的菜单导出为 xlsx(A/B 左右并排,含营养成分) |
批量导入示例
# 管理命令,每行:类型|菜名|配料|蛋白质|脂肪|热量|菜系
.venv\Scripts\python backend\manage.py import_dishes dishes.txt
# 或调用 API(需先登录 admin)
curl -u admin:admin123 -H "Content-Type: application/json" \
-d '{"dishes":[{"name":"清蒸鲈鱼","dish_type":"荤菜","cuisine":"粤菜","protein":16,"fat":5,"calorie":140}]}' \
http://127.0.0.1:8000/api/dishes/bulk/
Languages
Python
46.5%
HTML
22.3%
CSS
14.3%
JavaScript
11.1%
Batchfile
2.8%
Other
3%