From 06747569be0c85107e0fdc567828057965b44e55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=9A=82=E8=9A=81=E4=BA=91?= Date: Wed, 16 Sep 2026 13:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=85=A5=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/memory/MEMORY.md | 1 + .claude/memory/project-architecture.md | 21 +++++++ CLAUDE.md | 78 ++++++++++++++++++++++++++ README.md | 2 +- ui/index.html | 2 +- 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 .claude/memory/MEMORY.md create mode 100644 .claude/memory/project-architecture.md create mode 100644 CLAUDE.md diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md new file mode 100644 index 0000000..c16d23d --- /dev/null +++ b/.claude/memory/MEMORY.md @@ -0,0 +1 @@ +- [Project Architecture](project-architecture.md) — Django + Vue3 enterprise data platform structure and key conventions diff --git a/.claude/memory/project-architecture.md b/.claude/memory/project-architecture.md new file mode 100644 index 0000000..56549cf --- /dev/null +++ b/.claude/memory/project-architecture.md @@ -0,0 +1,21 @@ +--- +name: project-architecture +description: DjangoAdmin V3 — Django+DRF backend with Vue3+NaiveUI frontend, RBAC auth, code generator +metadata: + type: project +--- + +DjangoAdmin 数据中台 V3: enterprise-grade data platform with Django 6 backend and Vue3+NaiveUI+Vite frontend. + +Key structure: +- `application/` — each subdirectory is a standalone Django app (user, role, menu, dept, dict, generator, etc.) +- `ui/` — Vue3 frontend (pnpm, TypeScript, NaiveUI, TailwindCSS) +- `config.json` — code generator model definition +- `generator.py` + `generator_config.py` — auto-generates CRUD code from config.json +- `middleware/` — login + permission middleware chain +- `utils/R.py` — unified API response wrapper `{code, msg, data}` + +Auth: JWT (SimpleJWT), RBAC with menu/button/data permissions. + +**Why:** Understanding this structure is essential for navigating and modifying any part of the system. +**How to apply:** When adding features, create a new app under `application/` following existing patterns. Use `generator.py` for boilerplate CRUD. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..1ffef43 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,78 @@ +# 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 统一前缀 diff --git a/README.md b/README.md index 0b76be7..a4a4af3 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一 | MySQL | mysqlclient 2.2.8 | ✅ 默认支持 | | PostgreSQL | psycopg2-binary 2.9.9 | ✅ 支持 | | SQL Server | mssql-django 1.4.2 | ✅ 支持 | -| Oracle | oracledb 2.5.1 | ✅ 支持 | +| Oracle | oracledb 4.0.2 | ✅ 支持 | | SQLite | Django 内置 | ✅ 支持 | ## 📁 项目结构 diff --git a/ui/index.html b/ui/index.html index 5dee226..435a717 100644 --- a/ui/index.html +++ b/ui/index.html @@ -14,7 +14,7 @@ var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); - hm.src = "https://hm.baidu.com/hm.js?c34f7db0847c3d541f8e0b45a855d460"; + hm.src = "https://hm.baidu.com/hm.js?afb51fcce399a4beccaa545506a8a4e4"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();