签入版本
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
- [Project Architecture](project-architecture.md) — Django + Vue3 enterprise data platform structure and key conventions
|
||||||
@@ -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.
|
||||||
@@ -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 统一前缀
|
||||||
@@ -63,7 +63,7 @@ DjangoAdmin 数据中台解决方案是一套面向企业级应用场景的一
|
|||||||
| MySQL | mysqlclient 2.2.8 | ✅ 默认支持 |
|
| MySQL | mysqlclient 2.2.8 | ✅ 默认支持 |
|
||||||
| PostgreSQL | psycopg2-binary 2.9.9 | ✅ 支持 |
|
| PostgreSQL | psycopg2-binary 2.9.9 | ✅ 支持 |
|
||||||
| SQL Server | mssql-django 1.4.2 | ✅ 支持 |
|
| SQL Server | mssql-django 1.4.2 | ✅ 支持 |
|
||||||
| Oracle | oracledb 2.5.1 | ✅ 支持 |
|
| Oracle | oracledb 4.0.2 | ✅ 支持 |
|
||||||
| SQLite | Django 内置 | ✅ 支持 |
|
| SQLite | Django 内置 | ✅ 支持 |
|
||||||
|
|
||||||
## 📁 项目结构
|
## 📁 项目结构
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
var _hmt = _hmt || [];
|
var _hmt = _hmt || [];
|
||||||
(function() {
|
(function() {
|
||||||
var hm = document.createElement("script");
|
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];
|
var s = document.getElementsByTagName("script")[0];
|
||||||
s.parentNode.insertBefore(hm, s);
|
s.parentNode.insertBefore(hm, s);
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user