Files
djangoadmin-wiki/DjangoAdmin_Django_NaiveVue/zh/volume3/directory.md
T
2026-09-13 18:12:07 +08:00

8.4 KiB

第四章 架构设计 - 目录结构设计

4.1 项目根目录

DjangoAdmin_Django_NaiveVue/
|
+-- application/                 # Django后端应用主目录
+-- middleware/                   # 自定义中间件
+-- utils/                       # 工具函数库
+-- config/                      # 配置文件目录
+-- constant/                    # 常量定义
+-- extends/                     # 扩展功能
+-- public/                      # 公共资源
|   +-- static/                  # 静态文件
|   +-- templates/               # 代码生成模板
|   +-- uploads/                 # 上传文件存储
+-- data/                        # 数据文件
+-- ui/                          # Vue前端项目
+-- manage.py                    # Django管理脚本
+-- generator.py                 # 代码生成器CLI
+-- config.json                  # 代码生成配置
+-- requirements.txt             # Python依赖
+-- .env                         # 环境变量配置
+-- CLAUDE.md                    # Claude Code指导文件

4.2 后端应用目录 (application/)

application/
|
+-- __init__.py                  # 包初始化
+-- settings.py                  # Django项目配置
+-- urls.py                      # 主路由配置
+-- models.py                    # BaseModel抽象基类
+-- constants.py                 # 项目常量定义
+-- asgi.py                      # ASGI入口
+-- wsgi.py                      # WSGI入口
|
+-- login/                       # 登录模块
+-- index/                       # 首页模块
+-- user/                        # 用户管理模块
+-- role/                        # 角色管理模块
+-- menu/                        # 菜单管理模块
+-- dept/                        # 部门管理模块
+-- dict/                        # 字典管理模块
+-- config/                      # 配置管理模块
+-- job/                         # 定时任务模块
+-- article/                     # 文章管理模块
+-- example/                     # 案例模块(参考示例)
+-- generator/                   # 代码生成器模块
+-- operation_log/               # 操作日志模块
+-- login_log/                   # 登录日志模块
+-- upload/                      # 文件上传模块
+-- ...                          # 其他业务模块

4.3 标准模块目录结构

每个业务模块遵循统一的文件结构:

application/<module>/
|
+-- __init__.py                  # 包初始化文件
+-- apps.py                      # Django应用配置
+-- models.py                    # 数据模型定义
+-- forms.py                     # 表单验证类
+-- services.py                  # 业务逻辑函数
+-- views.py                     # 视图处理类
+-- urls.py                      # URL路由配置
+-- admin.py                     # Admin后台注册
+-- constants.py                 # 模块常量(可选)
+-- migrations/                  # 数据库迁移文件
    +-- __init__.py
    +-- 0001_initial.py

文件职责说明

文件 职责 典型内容
models.py 数据模型定义 继承 BaseModel,定义业务字段
forms.py 表单验证 ModelForm 子类,字段验证规则
services.py 业务逻辑 CRUD 操作,分页查询,数据处理
views.py 视图处理 类视图,装饰器,权限检查
urls.py 路由配置 path() 映射,URL 到视图的绑定
apps.py 应用配置 AppConfig 子类,应用名称
admin.py Admin注册 模型在 Django Admin 的注册

4.4 中间件目录 (middleware/)

middleware/
|
+-- __init__.py                  # 包初始化
+-- login_middleware.py          # JWT登录认证装饰器
+-- permission_middleware.py     # 权限控制混入类

中间件文件说明

文件 功能 核心类/函数
login_middleware.py JWT认证 check_login 装饰器
permission_middleware.py RBAC权限 PermissionRequired 混入类

4.5 工具函数目录 (utils/)

utils/
|
+-- __init__.py                  # 包初始化
+-- R.py                         # 统一响应格式
+-- jwt.py                       # JWT令牌处理
+-- security.py                  # 用户安全工具
+-- common.py                    # 通用工具函数
+-- regular.py                   # 正则验证工具
+-- password.py                  # 密码处理工具
+-- file.py                      # 文件处理工具
+-- ip_location.py               # IP地理位置查询
+-- ip2region.py                 # IP数据库查询
+-- ip2region.xdb                # IP数据库文件

工具文件说明

文件 功能 核心函数
R.py 统一响应 R.ok(), R.failed(), R.response()
jwt.py JWT处理 create_token(), parse_payload(), refresh_token()
security.py 用户信息 get_user_id(), get_username()
common.py 通用工具 parse_request_body(), format_datetime(), get_file_url()
regular.py 表单验证 get_err()
password.py 密码处理 hash_password(), verify_password()

4.6 配置目录 (config/)

config/
|
+-- __init__.py                  # 包初始化
+-- env.py                       # 环境变量配置

配置项说明

config/env.py 定义了所有可配置的环境变量:

# 应用配置
DJANGO_NAME = os.getenv('DJANGO_NAME', 'Django+NaiveUI旗舰版')
DJANGO_VERSION = os.getenv('DJANGO_VERSION', 'v3.0.0')
DJANGO_DEBUG = (os.getenv('DJANGO_DEBUG', 'True') == 'True')
DJANGO_DEMO = (os.getenv('DJANGO_DEMO', 'True') == 'True')

# 数据库配置
DATABASE_ENGINE = os.getenv('DATABASE_ENGINE', "django.db.backends.mysql")
DATABASE_NAME = os.getenv('DATABASE_NAME', 'djangoadmin.django.naivevue')
DATABASE_HOST = os.getenv('DATABASE_HOST', "127.0.0.1")
DATABASE_PORT = os.getenv('DATABASE_PORT', 3306)
DATABASE_PREFIX = os.getenv('DATABASE_PREFIX', "django_")

# Redis配置
REDIS_HOST = os.getenv('REDIS_HOST', '127.0.0.1')
REDIS_PORT = int(os.getenv('REDIS_PORT', 6379))
REDIS_PASSWORD = os.getenv('REDIS_PASSWORD', '123456')
REDIS_DB = int(os.getenv('REDIS_DB', 0))

# IP地理位置配置
IP_LOCATION_SOURCE = os.environ.get('IP_LOCATION_SOURCE', 'api')
IP_CACHE_ENABLED = os.environ.get('IP_CACHE_ENABLED', 'True') == 'True'
IP_CACHE_TIMEOUT = int(os.environ.get('IP_CACHE_TIMEOUT', 86400))

4.7 前端目录 (ui/)

ui/
|
+-- public/                      # 静态资源
+-- src/
|   +-- api/                     # API接口定义
|   |   +-- tool/                # 业务API模块
|   |       +-- example.ts       # 案例API
|   |       +-- user.ts          # 用户API
|   |
|   +-- views/                   # 页面组件
|   |   +-- tool/                # 业务页面
|   |       +-- example/         # 案例页面
|   |       |   +-- index.vue    # 列表页
|   |       |   +-- edit.vue     # 编辑页
|   |       |   +-- detail.vue   # 详情页
|   |
|   +-- components/              # 公共组件
|   |   +-- BasicTable/          # 表格组件
|   |   +-- BasicForm/           # 表单组件
|   |   +-- PageWrapper/         # 页面容器
|   |
|   +-- router/                  # 路由配置
|   +-- store/                   # Pinia状态管理
|   +-- utils/                   # 工具函数
|   +-- layouts/                 # 布局组件
|
+-- .env.development             # 开发环境配置
+-- .env.production              # 生产环境配置
+-- package.json                 # 依赖配置
+-- vite.config.ts               # Vite配置
+-- tsconfig.json                # TypeScript配置

4.8 公共资源目录 (public/)

public/
|
+-- static/                      # 静态文件
+-- templates/                   # 代码生成模板
|   +-- models.py.tpl            # 模型模板
|   +-- forms.py.tpl             # 表单模板
|   +-- services.py.tpl          # 服务模板
|   +-- views.py.tpl             # 视图模板
|   +-- urls.py.tpl              # 路由模板
|   +-- ui/
|       +-- index.vue.tpl        # 列表页模板
|       +-- edit.vue.tpl         # 编辑页模板
|       +-- detail.vue.tpl       # 详情页模板
|       +-- api.ts.tpl           # API模块模板
|
+-- uploads/                     # 上传文件存储
    +-- example/                 # 按模块分类存储
    +-- avatar/                  # 头像文件
    +-- temp/                    # 临时文件