164 lines
4.0 KiB
Markdown
164 lines
4.0 KiB
Markdown
# 项目结构说明文档
|
||
|
||
## 1. 项目概述
|
||
本项目是一个基于Flask的Web应用,包含后台管理系统和小程序端。采用MVC架构,包含完整的业务模块和数据库支持。
|
||
|
||
## 2. 系统架构
|
||
|
||
### 2.1 架构图
|
||
```
|
||
[前端] -> [Nginx] -> [Flask应用] -> [MySQL]
|
||
| |
|
||
v v
|
||
[静态资源] [Redis缓存]
|
||
```
|
||
|
||
### 2.2 模块依赖关系
|
||
- Web模块依赖common模块的工具类和模型
|
||
- 定时任务模块依赖Web模块的业务逻辑
|
||
- 小程序端通过API与Web模块通信
|
||
|
||
## 3. 详细目录说明
|
||
|
||
### 3.1 核心模块
|
||
|
||
#### common/ 公共模块
|
||
- **libs/** 工具类库
|
||
- Helper.py
|
||
- 功能:提供日期处理、字符串处理等通用方法
|
||
- 依赖:无
|
||
- LogService.py
|
||
- 功能:记录系统日志,支持不同日志级别
|
||
- 依赖:logging模块
|
||
- UploadService.py
|
||
- 功能:处理文件上传,支持图片压缩和格式转换
|
||
- 依赖:Pillow库
|
||
- UrlManager.py
|
||
- 功能:生成和管理静态资源URL
|
||
- 依赖:config模块
|
||
|
||
- **models/** 数据模型
|
||
- User.py
|
||
- 表结构:用户ID、用户名、密码哈希、角色等
|
||
- 关联:与Image表一对多关系
|
||
- Image.py
|
||
- 表结构:图片ID、存储路径、上传时间等
|
||
- Dongtai_list.py
|
||
- 表结构:动态ID、内容、发布时间等
|
||
|
||
#### config/ 配置管理
|
||
- base_setting.py
|
||
- 基础配置:数据库连接、日志配置、缓存配置
|
||
- local_setting.py
|
||
- 本地开发配置:调试模式、测试数据库
|
||
- production_setting.py
|
||
- 生产环境配置:安全设置、性能优化
|
||
|
||
### 3.2 Web应用模块
|
||
|
||
#### web/ Web主模块
|
||
- **controllers/** 控制器
|
||
- account/
|
||
- 功能:用户注册、登录、权限管理
|
||
- 路由:/account/login, /account/register
|
||
- api/
|
||
- 功能:提供RESTful API接口
|
||
- 路由:/api/v1/*
|
||
- food/
|
||
- 功能:食品信息管理
|
||
- 路由:/food/list, /food/detail
|
||
- user/
|
||
- 功能:用户信息管理
|
||
- 路由:/user/profile, /user/update
|
||
|
||
- **static/** 静态资源
|
||
- css/:样式文件
|
||
- js/:前端脚本
|
||
- images/:图片资源
|
||
|
||
- **templates/** 模板文件
|
||
- base.html:基础模板
|
||
- account/:账户相关模板
|
||
- error/:错误页面模板
|
||
|
||
### 3.3 小程序模块
|
||
|
||
#### native/ 小程序代码
|
||
- pages/
|
||
- index/:首页
|
||
- user/:用户中心
|
||
- product/:商品详情
|
||
- utils/
|
||
- request.js:封装网络请求
|
||
- auth.js:处理用户认证
|
||
- weui/
|
||
- button.wxss:按钮样式
|
||
- form.wxss:表单样式
|
||
|
||
### 3.4 后台任务
|
||
|
||
#### jobs/ 定时任务
|
||
- tasks/
|
||
- pay/
|
||
- order_check.py:订单状态检查
|
||
- refund_process.py:退款处理
|
||
- queue/
|
||
- email_queue.py:邮件队列处理
|
||
- sms_queue.py:短信队列处理
|
||
- stat/
|
||
- daily_report.py:每日数据统计
|
||
- user_analysis.py:用户行为分析
|
||
|
||
## 4. 数据库设计
|
||
|
||
### 4.1 主要数据表
|
||
- 用户表(user)
|
||
- 图片表(image)
|
||
- 食品表(food)
|
||
- 订单表(order)
|
||
- 日志表(log)
|
||
|
||
### 4.2 数据库文件
|
||
- 后台初始账户.sql
|
||
- 功能:初始化管理员账户
|
||
- 包含:用户名、密码、权限信息
|
||
- food.sql
|
||
- 功能:初始化食品数据
|
||
- 包含:食品分类、价格、库存
|
||
- 自动生成models.txt
|
||
- 功能:记录模型生成过程
|
||
- 包含:生成时间、表结构变更记录
|
||
|
||
## 5. 关键文件说明
|
||
|
||
| 文件名称 | 功能描述 | 依赖关系 |
|
||
|----------|----------|----------|
|
||
| application.py | Flask应用主入口 | 依赖所有控制器和模型 |
|
||
| manager.py | 管理脚本 | 依赖Flask-Script |
|
||
| requirements.txt | Python依赖清单 | 无 |
|
||
| uwsgi.ini | uWSGI配置文件 | 依赖uWSGI |
|
||
| test.py | 单元测试文件 | 依赖unittest |
|
||
| imooc.py | 慕课相关功能 | 依赖requests库 |
|
||
|
||
## 6. 开发环境配置
|
||
|
||
### 6.1 环境要求
|
||
- Python 3.8+
|
||
- MySQL 5.7+
|
||
- Redis 6.0+
|
||
|
||
### 6.2 依赖安装
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 6.3 数据库初始化
|
||
```bash
|
||
python manager.py initdb
|
||
```
|
||
|
||
### 6.4 启动开发服务器
|
||
```bash
|
||
python manager.py runserver
|
||
```
|