4.9 KiB
4.9 KiB
订单日报系统 - 部署文档
项目简介
订单日报系统是一个基于 Flask 的 Web 应用,用于自动生成充电订单的日报报表。
技术栈
- 后端: Python 3.10+ + Flask 3.0 + Waitress
- 数据库: Apache Doris (MySQL 兼容)
- 前端: 原生 HTML/CSS/JavaScript
一、环境准备
1. 安装 Python
- 下载地址:https://www.python.org/downloads/
- 版本要求:Python 3.10 及以上
- **重要:安装时勾选 "Add Python to PATH
2. 拉取代码
# 从国内仓库拉取(推荐,速度快)
git clone http://www.yelite.cn:27825/huhao/ylt_diy.git
# 或从 GitHub 拉取
git clone https://github.com/huhaoslm-boop/ylt_diy.git
cd ylt_diy
3. 配置正式环境
复制正式环境配置文件:
copy .env.prod .env
根据实际情况修改 .env 文件中的配置:
# 服务监听地址
DEPLOY_RUN_HOST=0.0.0.0
# 服务监听端口
DEPLOY_RUN_PORT=5002
# 数据库配置
DB_HOST=192.168.10.250
DB_PORT=9030
DB_USER=root
DB_PASSWORD=DsideaL147258369
DB_NAME=yltcharge
# 日志级别(DEBUG/INFO/WARNING/ERROR)
LOG_LEVEL=INFO
二、启动服务
方式一:直接启动(测试用)
双击 启动.bat,或命令行执行:
启动.bat
脚本会自动完成:
- 读取
.env配置 - 检查 Python 环境
- 创建虚拟环境(
.venv) - 安装依赖
- 启动服务
启动成功后访问:http://localhost:5002
方式二:注册为 Windows 服务(推荐生产环境)
使用 NSSM 工具将应用注册为 Windows 服务,实现开机自动启动。
1. 下载 NSSM
- 下载地址:https://nssm.cc/download
- 解压后把
nssm.exe放到项目根目录
2. 安装服务
双击 服务管理.bat,选择:
1 - 安装服务
2 - 启动服务
服务名称:YltDailyReport
3. 其他操作
3 - 停止服务
4 - 重启服务
5 - 删除服务
0 - 退出
三、默认账号
用户名:admin
密 码:123586
登录后可在右上角点击"修改密码"修改默认密码。
四、代码更新
更新步骤
# 进入项目目录
cd ylt_diy
# 拉取最新代码
git pull
# 重启服务
# (如果是服务模式:服务管理.bat → 4 重启服务
# 如果是直接启动:关闭窗口重新打开启动.bat
五、双仓库配置说明
当前配置
| 操作 | 仓库地址 |
|---|---|
| 拉取(fetch) | https://github.com/huhaoslm-boop/ylt_diy.git |
| 推送(push) | 同时推送到 GitHub 和 yelite.cn |
查看当前配置
git remote -v
配置双仓库推送(已配置好的可跳过)
# 设置两个 push 地址
git remote set-url --push origin https://github.com/huhaoslm-boop/ylt_diy.git
git remote set-url --add --push origin http://www.yelite.cn:27825/huhao/ylt_diy.git
修改默认拉取源(可选:改为从国内仓库拉取
# 修改 fetch 地址为 yelite.cn
git remote set-url origin http://www.yelite.cn:27825/huhao/ylt_diy.git
# 再加回两个 push 地址
git remote set-url --add --push origin https://github.com/huhaoslm-boop/ylt_diy.git
git remote set-url --add --push origin http://www.yelite.cn:27825/huhao/ylt_diy.git
六、常见问题
1. 端口被占用
修改 .env 文件中的 DEPLOY_RUN_PORT 为其他端口。
2. 数据库连接失败
检查 .env 中的数据库配置是否正确。
3. 报表生成失败
查看日志文件:logs/app.log
4. 忘记管理员密码
在数据库中执行:
-- 重置密码为 123586
UPDATE t_daily_report_admin
SET password = MD5('123586'), token = NULL, token_expire = NULL
WHERE username = 'admin';
5. 服务无法启动
以命令行手动运行查看错误:
.venv\Scripts\python.exe run_prod.py
七、项目结构
ylt_diy/
├── app.py # Flask 主应用
├── run_prod.py # 生产环境启动入口
├── 启动.bat # 一键启动脚本
├── 服务管理.bat # Windows服务管理脚本
├── .env.prod # 正式环境配置模板
├── requirements.txt # Python依赖
├── lib/
│ ├── db.py # 数据库配置
│ ├── db_init.py # 数据库初始化
│ ├── logger.py # 日志模块
│ ├── report_generator.py # 日报生成核心逻辑
│ ├── sum_data_collector.py # 求和数据采集
│ ├── field_mapping.py # 字段映射
│ └── api/ # API 模块
├── templates/
│ └── index.html # 主页面
├── public/
│ ├── static/ # 静态资源
│ └── reports/ # 生成的报表
└── logs/ # 日志文件