# DjangoAdmin 数据中台 (Django + NaiveUI) ## 项目概览 企业级数据中台解决方案。后端 Django 6 + DRF,前端 Vue3 + TypeScript + NaiveUI + Vite。 ## 目录结构 ``` application/ # Django 应用(每个子目录一个业务模块) login/ # 登录认证(JWT) user/ # 用户管理 role/ # 角色管理 menu/ # 菜单管理(动态路由) dept/ # 部门管理 dict/ # 字典管理 generator/ # 代码生成器 ... config/ # Django 配置(settings, urls 等) middleware/ # 登录 & 权限中间件 utils/ # 通用工具(响应封装 R.py、JWT、加密等) extends/ # 扩展(dotenv 加载) constant/ # 全局常量 ui/ # 前端 Vue3 项目 docker/ # Docker 部署 scripts/ # 数据库迁移脚本 generator.py # 代码生成器主逻辑 generator_config.py # 生成器配置(字段模板) config.json # 代码生成器的模型定义 ``` ## 技术栈 - **后端**: Python 3.12+, Django 6.0, DRF 3.18, SimpleJWT, MySQL/PostgreSQL/SQLServer/Oracle - **前端**: Vue 3, TypeScript, NaiveUI, Vite, Pinia, Vue Router, TailwindCSS - **包管理**: 后端 pip (requirements.txt), 前端 pnpm ## 开发约定 ### 后端 - 每个业务模块是 `application/` 下的一个独立 Django app - 响应封装使用 `utils/R.py`,统一返回 `{code, msg, data}` 格式 - 认证方案: JWT (SimpleJWT) - 权限模型: RBAC(菜单权限 + 按钮权限 + 数据权限) - 中间件链: login_middleware → permission_middleware - 配置从 `.env` 加载(python-dotenv) ### 前端 - 前端项目在 `ui/` 目录,独立运行 - 使用 pnpm 作为包管理器 - ESLint + Prettier + Stylelint 代码规范 - 组件在 `ui/src/` 下 ### 代码生成器 - `config.json` 定义模型字段 - `generator.py` 根据配置自动生成前后端 CRUD 代码 - 表前缀自动去除(如 `django_` 前缀) ## 常用命令 ```bash # 后端 python manage.py runserver python manage.py makemigrations python manage.py migrate # 前端 cd ui && pnpm install && pnpm dev # Docker cd docker && docker-compose up -d ``` ## 注意事项 - `.env` 包含敏感配置,不要提交到 git - `config.json` 是代码生成器的输入,修改前确认字段定义 - 前后端分离部署,后端 API 统一前缀