From 9ed9ca5952b59f86b1361ab62ab33b190c7dfb15 Mon Sep 17 00:00:00 2001 From: rjb <263303411@qq.com> Date: Fri, 9 Jan 2026 18:15:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 316 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 299 insertions(+), 17 deletions(-) diff --git a/readme.md b/readme.md index 24fc42d..6e3b120 100644 --- a/readme.md +++ b/readme.md @@ -1,26 +1,308 @@ -Python Flask订餐系统 -===================== +# Python Flask 订餐系统 -## 环境要求 -- Linux系统 +一个基于 Flask 框架开发的在线订餐管理系统,包含完整的后台管理平台和小程序端 API 接口。系统采用 MVC 架构设计,支持食品管理、订单处理、会员管理、财务管理等核心业务功能。 + +## 📋 项目概述 + +本项目是一个功能完善的在线订餐系统,主要面向餐饮行业,提供从商品管理、订单处理到数据统计的完整解决方案。系统分为后台管理端和小程序端两部分,后台管理端用于商家管理商品、订单和会员信息,小程序端为用户提供在线订餐服务。 + +## ✨ 功能特性 + +### 后台管理功能 +- **账号管理**:管理员账号的创建、编辑和权限管理 +- **食品管理**:食品分类、商品信息、库存管理、价格设置 +- **会员管理**:会员信息查看、编辑、状态管理、评论管理 +- **订单管理**:订单查询、状态跟踪、订单详情查看 +- **财务管理**:订单统计、收入分析、财务报表 +- **数据统计**:每日数据统计、食品销售统计、会员统计、站点统计 +- **文件上传**:支持图片上传和管理 + +### 小程序端 API +- **食品展示**:食品列表、分类查询、搜索功能 +- **购物车**:商品加入购物车、数量修改、结算 +- **订单管理**:订单创建、支付、订单列表、订单详情 +- **会员功能**:会员注册、登录、个人信息管理、地址管理 +- **评论系统**:商品评论、评分功能 + +### 系统功能 +- **权限控制**:基于 Cookie 的认证机制,支持登录拦截 +- **日志记录**:访问日志、错误日志记录 +- **定时任务**:支持定时统计任务、队列处理任务 +- **图片管理**:图片上传、存储和管理 + +## 🛠 技术栈 + +### 后端技术 +- **框架**:Flask 2.3.3 +- **ORM**:Flask-SQLAlchemy 3.1.1 + SQLAlchemy 2.0.45 +- **数据库**:MySQL 5.7+ (使用 PyMySQL 连接) +- **任务调度**:Flask CLI 命令系统 +- **服务器**:uWSGI (生产环境) + +### 前端技术 +- **模板引擎**:Jinja2 +- **UI框架**:Bootstrap +- **JavaScript**:jQuery +- **富文本编辑器**:UEditor + +### 部署环境 +- **操作系统**:Linux +- **Web服务器**:Nginx +- **Python版本**:Python 3.9+ + +## 🏗 系统架构 + +``` +┌─────────────┐ +│ 小程序端 │ +└──────┬──────┘ + │ + │ HTTP API + ▼ +┌─────────────────┐ +│ Nginx 反向代理 │ +└──────┬──────────┘ + │ + ├──────────┐ + │ │ + ▼ ▼ +┌──────────┐ ┌──────────┐ +│ Flask应用 │ │ 静态资源 │ +└────┬─────┘ └──────────┘ + │ + ▼ +┌──────────┐ +│ MySQL │ +└──────────┘ +``` + +## 📁 项目结构 + +``` +order/ +├── application.py # Flask应用主入口 +├── manager.py # 管理脚本(启动服务器、定时任务) +├── www.py # 路由注册和拦截器配置 +├── requirements.txt # Python依赖清单 +├── uwsgi.ini # uWSGI配置文件 +├── nginx_order.conf # Nginx配置文件 +│ +├── config/ # 配置文件目录 +│ ├── base_setting.py # 基础配置 +│ ├── local_setting.py # 本地开发配置 +│ └── production_setting.py # 生产环境配置 +│ +├── common/ # 公共模块 +│ ├── libs/ # 工具类库 +│ │ ├── Helper.py # 通用工具函数 +│ │ ├── LogService.py # 日志服务 +│ │ ├── UploadService.py # 文件上传服务 +│ │ └── UrlManager.py # URL管理 +│ └── models/ # 数据模型 +│ ├── User.py # 用户模型 +│ ├── member/ # 会员相关模型 +│ ├── food/ # 食品相关模型 +│ └── pay/ # 支付相关模型 +│ +├── web/ # Web应用模块 +│ ├── controllers/ # 控制器 +│ │ ├── user/ # 用户管理 +│ │ ├── food/ # 食品管理 +│ │ ├── member/ # 会员管理 +│ │ ├── finance/ # 财务管理 +│ │ ├── stat/ # 数据统计 +│ │ └── api/ # API接口 +│ ├── templates/ # 模板文件 +│ ├── static/ # 静态资源 +│ └── interceptors/ # 拦截器 +│ +├── jobs/ # 定时任务 +│ ├── tasks/ # 任务脚本 +│ └── launcher.py # 任务启动器 +│ +└── 数据库文件/ # 数据库初始化脚本 + ├── food.sql # 数据库表结构 + └── 后台初始账户.sql # 初始管理员账户 +``` + +## 🚀 快速开始 + +### 环境要求 +- Linux 系统 - Python 3.9+ - MySQL 5.7+ +- Nginx (生产环境) -## 启动服务 +### 安装步骤 + +1. **克隆项目** ```bash -# 本地开发环境 -export ops_config=local && python manager.py runserver - -# 生产环境 -export ops_config=production && python manager.py runserver +git clone +cd order ``` -## 数据库配置 -数据库连接信息在 `config/base_setting.py` 和 `config/production_setting.py` 中配置。 - -## 生成ORM模型 -使用flask-sqlacodegen自动生成模型: +2. **创建虚拟环境** ```bash -flask-sqlacodegen 'mysql://root:password@host:port/food_db' --outfile "common/models/model.py" --flask -flask-sqlacodegen 'mysql://root:password@host:port/food_db' --tables user --outfile "common/models/user.py" --flask +python3 -m venv venv_linux +source venv_linux/bin/activate ``` + +3. **安装依赖** +```bash +pip install -r requirements.txt +``` + +4. **配置数据库** +编辑 `config/base_setting.py` 或 `config/production_setting.py`,配置数据库连接信息: +```python +SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:password@host:port/food_db?charset=utf8mb4' +``` + +5. **初始化数据库** +```bash +# 创建数据库 +mysql -u root -p +CREATE DATABASE food_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +# 导入表结构 +mysql -u root -p food_db < 数据库文件/food.sql +# 或导入完整数据 +mysql -u root -p food_db < food1.sql +``` + +6. **创建管理员账户** +```bash +# 使用Python脚本创建(参考项目中的创建脚本) +# 默认账户:admin / 123456 +``` + +### 启动服务 + +#### 开发环境 +```bash +export ops_config=local +python manager.py runserver +``` +访问地址:http://127.0.0.1:8032 + +#### 生产环境 +```bash +export ops_config=production +python manager.py runserver +``` + +或使用 uWSGI: +```bash +uwsgi --ini uwsgi.ini +``` + +#### 配置 Nginx +```bash +# 复制nginx配置文件 +sudo cp nginx_order.conf /etc/nginx/conf.d/order.conf + +# 测试配置 +sudo nginx -t + +# 重新加载 +sudo nginx -s reload +``` + +## 📖 使用说明 + +### 后台管理 + +1. **登录系统** + - 访问:http://your-domain/user/login + - 默认账号:admin + - 默认密码:123456 + +2. **主要功能模块** + - **仪表盘**:查看系统概览和统计数据 + - **账号管理**:管理后台管理员账号 + - **美餐管理**:管理食品分类和商品信息 + - **会员列表**:查看和管理会员信息 + - **财务管理**:查看订单和财务数据 + - **统计管理**:查看各类统计数据 + +### API 接口 + +小程序端通过以下 API 接口访问: +- `/api/food/index` - 食品列表 +- `/api/food/search` - 食品搜索 +- `/api/cart/index` - 购物车 +- `/api/order/create` - 创建订单 +- `/api/member/login` - 会员登录 +- `/api/my/order` - 我的订单 + +### 定时任务 + +系统支持定时任务,使用 Flask CLI 命令执行: +```bash +# 执行统计任务 +python manager.py runjob -m stat/daily -a member +python manager.py runjob -m stat/daily -a food +python manager.py runjob -m stat/daily -a site +``` + +## 🔧 配置说明 + +### 环境变量 +- `ops_config=local` - 使用本地开发配置 +- `ops_config=production` - 使用生产环境配置 + +### 主要配置项 +- **数据库连接**:在配置文件中设置 `SQLALCHEMY_DATABASE_URI` +- **应用域名**:在 `APP['domain']` 中配置 +- **上传路径**:在 `UPLOAD` 配置中设置 +- **服务器端口**:在 `SERVER_PORT` 中配置(默认:8032) + +## 📝 生成 ORM 模型 + +使用 flask-sqlacodegen 自动生成模型: +```bash +flask-sqlacodegen 'mysql://root:password@host:port/food_db' \ + --tables table_name \ + --outfile "common/models/path/ModelName.py" \ + --flask +``` + +**注意**:生成后需要修改模型文件,将 `from flask_sqlalchemy import SQLAlchemy` 改为 `from application import db` + +## 🗄 数据库设计 + +### 主要数据表 +- **user** - 管理员用户表 +- **member** - 会员表 +- **food** - 食品表 +- **food_cat** - 食品分类表 +- **pay_order** - 订单表 +- **pay_order_item** - 订单明细表 +- **member_cart** - 购物车表 +- **member_comments** - 评论表 +- **app_access_log** - 访问日志表 +- **app_error_log** - 错误日志表 +- **stat_daily_*** - 统计数据表 + +## 🔒 安全说明 + +- 密码使用 MD5 + Salt 加密存储 +- 支持 Cookie 认证机制 +- 访问日志和错误日志记录 +- 支持权限拦截和验证 + +## 📄 许可证 + +本项目仅供学习和参考使用。 + +## 👥 贡献 + +欢迎提交 Issue 和 Pull Request。 + +## 📞 联系方式 + +如有问题,请通过 Issue 反馈。 + +--- + +**注意**:本项目仅支持 Linux 环境运行,已移除所有 Windows 相关配置和脚本。