Feat: Complete UI redesign, backend optimization, and Docker deployment support
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
# 📊 销售数据分析器
|
||||
|
||||
一个现代化的Web应用程序,用于分析和可视化销售数据。支持Excel文件上传,自动解析销售数据,提供丰富的分析功能和美观的界面展示。
|
||||
|
||||
## ✨ 功能特性
|
||||
|
||||
### 🎯 核心功能
|
||||
- **Excel文件上传** - 支持.xlsx和.xls格式文件
|
||||
- **智能数据解析** - 自动识别销售数据结构
|
||||
- **多文件管理** - 支持多个Excel文件的切换查看
|
||||
- **数据筛选** - 按金额范围进行数据筛选
|
||||
- **搜索功能** - 支持商品名称搜索
|
||||
|
||||
### 📊 数据展示
|
||||
- **销售总览** - 显示总销售额、销售天数、商品种类等统计信息
|
||||
- **每日详情** - 按日期分组展示销售数据
|
||||
- **双视图模式** - 支持卡片视图和表格视图切换
|
||||
- **表格排序** - 点击表头实现数据排序(升序/降序/原始顺序)
|
||||
|
||||
### 🎨 用户界面
|
||||
- **现代化设计** - 采用渐变色彩和卡片式布局
|
||||
- **响应式设计** - 完美适配桌面和移动设备
|
||||
- **专业图标** - 使用Font Awesome图标系统
|
||||
- **加载优化** - 骨架屏和进度条提升用户体验
|
||||
|
||||
### 🔧 技术特性
|
||||
- **高性能** - 基于Flask框架,快速响应
|
||||
- **安全性** - 文件上传安全验证和清理功能
|
||||
- **可扩展** - 模块化设计,易于扩展新功能
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 系统要求
|
||||
|
||||
- **Python** 3.8+
|
||||
- **操作系统** Windows/Linux/macOS
|
||||
- **浏览器** 现代浏览器(Chrome、Firefox、Safari、Edge)
|
||||
|
||||
### 安装步骤
|
||||
|
||||
#### 1. 克隆项目
|
||||
```bash
|
||||
git clone https://gitea.94kan.cn/houhuan/SaleShow.git
|
||||
cd SaleShow
|
||||
```
|
||||
|
||||
#### 2. 创建虚拟环境(推荐)
|
||||
```bash
|
||||
# Windows
|
||||
python -m venv venv
|
||||
venv\Scripts\activate
|
||||
|
||||
# Linux/macOS
|
||||
python -m venv venv
|
||||
source venv/bin/activate
|
||||
```
|
||||
|
||||
#### 3. 安装依赖
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
#### 4. 运行应用
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
#### 5. 访问应用
|
||||
打开浏览器,访问:http://localhost:5000
|
||||
|
||||
## 📖 使用指南
|
||||
|
||||
### 上传文件
|
||||
1. 点击"上传Excel文件"按钮
|
||||
2. 选择.xlsx或.xls格式的Excel文件
|
||||
3. 等待文件处理完成
|
||||
4. 查看分析结果
|
||||
|
||||
### 查看数据
|
||||
- **左侧面板** - 显示已上传的文件列表,点击可切换查看不同文件
|
||||
- **顶部统计** - 显示销售总览信息
|
||||
- **每日数据** - 按日期分组展示详细销售记录
|
||||
|
||||
### 数据操作
|
||||
- **视图切换** - 点击日期卡片右上角的图标可在卡片视图和表格视图间切换
|
||||
- **表格排序** - 在表格视图中点击列标题可进行排序
|
||||
- **数据筛选** - 使用底部的筛选按钮按金额范围筛选数据
|
||||
- **搜索功能** - 在搜索框中输入商品名称进行搜索
|
||||
|
||||
### 文件管理
|
||||
- **清理文件** - 点击"清理文件"按钮可删除所有上传的Excel文件
|
||||
- **自动加载** - 页面刷新时自动加载最新上传的文件
|
||||
|
||||
## 🏗️ 部署说明
|
||||
|
||||
### 开发环境部署
|
||||
按照"快速开始"部分的步骤即可。
|
||||
|
||||
### 生产环境部署
|
||||
|
||||
#### 使用Gunicorn(推荐)
|
||||
```bash
|
||||
pip install gunicorn
|
||||
gunicorn -w 4 -b 0.0.0.0:8000 app:app
|
||||
```
|
||||
|
||||
#### 使用Docker部署
|
||||
```dockerfile
|
||||
FROM python:3.9-slim
|
||||
|
||||
WORKDIR /app
|
||||
COPY requirements.txt .
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
COPY . .
|
||||
EXPOSE 5000
|
||||
|
||||
CMD ["python", "app.py"]
|
||||
```
|
||||
|
||||
#### Nginx反向代理配置
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name your-domain.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8000;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 环境变量配置
|
||||
```bash
|
||||
# 设置Flask环境
|
||||
export FLASK_ENV=production
|
||||
export FLASK_DEBUG=False
|
||||
|
||||
# 设置上传文件大小限制(默认16MB)
|
||||
export MAX_CONTENT_LENGTH=16777216
|
||||
```
|
||||
|
||||
## 📁 项目结构
|
||||
|
||||
```
|
||||
SaleShow/
|
||||
├── app.py # Flask应用主文件
|
||||
├── requirements.txt # Python依赖包列表
|
||||
├── templates/
|
||||
│ └── index.html # 前端HTML模板
|
||||
├── uploads/ # 上传文件存储目录(自动创建)
|
||||
├── __pycache__/ # Python缓存文件
|
||||
└── README.md # 项目说明文档
|
||||
```
|
||||
|
||||
## 🛠️ 技术栈
|
||||
|
||||
### 后端
|
||||
- **Flask** 2.3.3 - Web框架
|
||||
- **pandas** 2.3.3 - 数据处理
|
||||
- **openpyxl** 3.1.5 - Excel文件处理
|
||||
- **xlrd** 2.0.1 - 旧版Excel文件支持
|
||||
|
||||
### 前端
|
||||
- **HTML5** - 页面结构
|
||||
- **CSS3** - 样式设计
|
||||
- **JavaScript (ES6+)** - 交互功能
|
||||
- **Font Awesome 6.4.0** - 图标库
|
||||
|
||||
### 开发工具
|
||||
- **Git** - 版本控制
|
||||
- **pip** - 包管理
|
||||
|
||||
## 🔒 安全说明
|
||||
|
||||
- 文件上传仅支持.xlsx和.xls格式
|
||||
- 文件大小限制为16MB
|
||||
- 使用安全的文件名处理
|
||||
- 定期清理上传的文件以释放磁盘空间
|
||||
|
||||
## 🤝 贡献指南
|
||||
|
||||
1. Fork 本项目
|
||||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||||
5. 创建 Pull Request
|
||||
|
||||
## 📄 许可证
|
||||
|
||||
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
||||
|
||||
## 📞 联系方式
|
||||
|
||||
如有问题或建议,请通过以下方式联系:
|
||||
- 项目地址:https://gitea.94kan.cn/houhuan/SaleShow
|
||||
- 提交 Issue:项目仓库的Issues页面
|
||||
|
||||
---
|
||||
|
||||
**最后更新时间:** 2026年1月3日
|
||||
|
||||
*享受数据分析的乐趣!📊✨*
|
||||
Reference in New Issue
Block a user