4.0 KiB
4.0 KiB
项目结构说明文档
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模块
- Helper.py
-
models/ 数据模型
- User.py
- 表结构:用户ID、用户名、密码哈希、角色等
- 关联:与Image表一对多关系
- Image.py
- 表结构:图片ID、存储路径、上传时间等
- Dongtai_list.py
- 表结构:动态ID、内容、发布时间等
- User.py
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
- account/
-
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:用户行为分析
- pay/
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 依赖安装
pip install -r requirements.txt
6.3 数据库初始化
python manager.py initdb
6.4 启动开发服务器
python manager.py runserver