# 项目目录结构 ## 整体结构 ``` ├── application/ # Django 应用目录(所有业务模块) │ ├── example/ # 示例模块(标准 CRUD 模板,可作为开发参考) │ │ ├── models.py # 数据模型 │ │ ├── forms.py # 表单验证 │ │ ├── services.py # 业务逻辑 │ │ ├── views.py # 视图处理 │ │ ├── urls.py # 路由配置 │ │ └── apps.py # 应用配置 │ ├── user/ # 用户管理模块 │ ├── role/ # 角色管理模块 │ ├── role_menu/ # 角色菜单关联模块 │ ├── menu/ # 菜单管理模块 │ ├── dept/ # 部门管理模块 │ ├── level/ # 职级管理模块 │ ├── position/ # 岗位管理模块 │ ├── dict/ # 字典类型管理模块 │ ├── dict_item/ # 字典项管理模块 │ ├── config/ # 配置类型管理模块 │ ├── config_item/ # 配置项管理模块 │ ├── config_web/ # Web 配置模块 │ ├── param/ # 参数管理模块 │ ├── file_template/ # 文件模板模块 │ ├── article/ # 文章管理模块 │ ├── category/ # 分类管理模块 │ ├── notice/ # 公告管理模块 │ ├── link/ # 友情链接模块 │ ├── city/ # 城市管理模块 │ ├── job/ # 定时任务模块 │ ├── job_log/ # 任务日志模块 │ ├── login/ # 登录模块(登录、验证码) │ ├── login_log/ # 登录日志模块 │ ├── operation_log/ # 操作日志模块 │ ├── upload/ # 文件上传模块 │ ├── index/ # 首页模块(菜单、用户信息) │ ├── generator/ # 代码生成器 Web 端 │ ├── models.py # BaseModel 抽象基类 │ ├── settings.py # Django 项目配置 │ ├── urls.py # 主路由配置(注册所有模块路由) │ └── wsgi.py # WSGI 入口 ├── config/ # 配置目录 │ └── env.py # 环境变量配置(数据库、Redis 等) ├── middleware/ # 中间件目录 │ ├── login_middleware.py # JWT 登录认证装饰器 │ └── permission_middleware.py # 权限控制混入类 ├── utils/ # 工具类目录 │ ├── R.py # 统一响应工具(R.ok / R.failed) │ ├── jwt.py # JWT 生成和解析工具 │ ├── common.py # 通用工具函数 │ ├── regular.py # 表单错误信息提取 │ └── security.py # 安全工具(获取用户 ID、用户名) ├── constant/ # 常量定义目录 │ └── constants.py # 全局常量(PAGE_SIZE、MESSAGE_OK 等) ├── extends/ # 扩展模块 │ └── extends_dotenv.py # .env 文件加载 ├── ui/ # 前端 Vue 项目 │ ├── src/ │ │ ├── api/ # API 接口层 │ │ │ ├── tool/ # 业务 API 模块 │ │ │ └── sys/ # 系统 API 模块 │ │ ├── views/ # 页面视图 │ │ │ ├── tool/ # 业务页面 │ │ │ ├── sys/ # 系统管理页面 │ │ │ └── dashboard/ # 仪表盘 │ │ ├── components/ # 公共组件 │ │ │ ├── BasicTable/ # 表格组件 │ │ │ ├── BasicForm/ # 表单组件 │ │ │ └── PageWrapper/ # 页面容器 │ │ ├── router/ # 路由配置 │ │ │ ├── router-guards.ts # 路由守卫 │ │ │ └── generator-routers.ts # 动态路由生成 │ │ ├── store/ # Pinia 状态管理 │ │ │ └── modules/ │ │ │ ├── asyncRoute.ts # 动态路由状态 │ │ │ └── user.ts # 用户状态 │ │ ├── utils/ # 前端工具 │ │ │ └── http/axios/ # Axios HTTP 封装 │ │ └── directives/ # 自定义指令(v-perm 权限指令) │ ├── .env.development # 开发环境配置(API 代理) │ ├── .env.production # 生产环境配置 │ ├── package.json # 前端依赖配置 │ └── vite.config.ts # Vite 构建配置 ├── public/ # 公共资源目录 │ ├── templates/ # Jinja2 代码生成模板 │ ├── static/ # 静态文件 │ └── uploads/ # 上传文件存储 ├── generator.py # 代码生成器 CLI 入口 ├── generator_config.py # 代码生成引擎(CodeGenerator 类) ├── manage.py # Django 管理脚本 ├── requirements.txt # Python 依赖(UTF-16LE 编码) ├── config.json # 代码生成器配置示例 └── .env # 环境变量文件(数据库、Redis 连接信息) ``` ## 后端模块内部结构 每个业务模块(如 `application/example/`)遵循统一的文件结构: ``` application// ├── __init__.py # 包初始化文件 ├── apps.py # 应用配置(AppConfig) ├── models.py # 数据模型定义 ├── forms.py # 表单验证类 ├── services.py # 业务逻辑函数 ├── views.py # 视图类(HTTP 请求处理) ├── urls.py # 模块内路由配置 ├── admin.py # Django Admin 配置 └── migrations/ # 数据库迁移文件 └── __init__.py ``` ### 各文件职责 | 文件 | 职责 | 示例 | |------|------|------| | `models.py` | 定义数据库模型,继承 `BaseModel` | `class Example(BaseModel): name = models.CharField(...)` | | `forms.py` | 定义表单验证规则,继承 `ModelForm` | `class ExampleForm(forms.ModelForm): name = forms.CharField(required=True)` | | `services.py` | 实现所有业务逻辑 | `get_example_page()`, `add_example()`, `update_example()` | | `views.py` | 处理 HTTP 请求,调用 services,返回响应 | `class ExamplePageView(PermissionRequired, View)` | | `urls.py` | 配置模块内 URL 映射 | `path('page', views.ExamplePageView.as_view())` | ## 前端模块结构 一个生成的 CRUD 页面通常包含以下文件: ``` ui/src/views/// ├── index.vue # 列表页(搜索表单 + 数据表格 + 操作按钮) ├── edit.vue # 编辑弹窗(新增/编辑表单) ├── detail.vue # 详情弹窗(只读展示) └── components/ # 模块内私有组件(可选) ``` 对应的 API 模块: ``` ui/src/api//.ts # CRUD 接口封装 ``` ## 关键配置文件 | 文件 | 作用 | |------|------| | `.env` | 数据库连接、Redis 连接、应用名称等环境变量 | | `config/env.py` | 读取 `.env` 并导出配置变量,所有模块通过 `from config.env import ...` 使用 | | `application/settings.py` | Django 配置(INSTALLED_APPS、中间件、数据库、缓存等) | | `application/urls.py` | 主路由配置,通过 `include()` 注册所有模块路由 | | `ui/.env.development` | 前端开发环境配置(Vite 代理 `/api` 到后端) | | `ui/package.json` | 前端依赖和脚本命令 |