# 项目结构说明文档 ## 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 ```