外观
项目结构
目录结构
项目目录结构遵循Django标准项目结构,容易理解和维护,利于进行二次开发。
sh
mysite # 项目根目录
|-- locale # 存放本地化和国际化相关文件
| |-- en # 英文翻译文件目录
| `-- zh_Hans # 简体中文翻译文件目录
|-- logs # 存放项目运行日志
| |-- access.log # 访问日志
| `-- error.log # 错误日志
|-- manage.py # Django项目管理脚本
|-- mars_framework # 项目的框架封装
|-- media # 用户上传文件目录
| |-- 202505 # 按月份存储的上传文件
| |-- 202506 # 按月份存储的上传文件
| `-- avatars # 用户头像目录
|-- myapp_infra # 基础设施应用APP
|-- myapp_system # 系统管理应用APP
|-- mysite # 项目主配置目录
| |-- __init__.py # 包初始化文件
| |-- asgi.py # ASGI服务器配置
| |-- celery.py # Celery配置
| |-- settings.py # 项目配置文件
| |-- urls.py # 主URL配置
| `-- wsgi.py # WSGI服务器配置
`-- pytest.ini # pytest测试框架配置
应用APP
介绍
myapp_xxx表示应用APP,目前内置了以下应用APP
名称 | 说明 | 是否必须 |
---|---|---|
myapp_system | 系统管理 | 是 |
myapp_infra | 基础设施 | 是 |
myapp_bpm | 工作流(规划中) | 否 |
myapp_report | 数据大屏(规划中) | 否 |
myapp_system 应用APP
系统管理——应用APP目录结构
- 采用标准Django应用APP目录结构
- 每个功能组件,对应一个目录,容易理解和维护
sh
|-- myapp_system # 系统管理应用APP
| |-- admin.py
| |-- apps.py
| |-- auth # 用户认证
| |-- captcha # 验证码
| |-- dept # 部门管理
| |-- dict_data # 数据字典
| |-- dict_type # 字典类型
| |-- fixtures # 初始化数据
| |-- login_log # 登录日志
| |-- mail_account # 邮件账户
| |-- mail_log # 邮件日志
| |-- mail_template # 邮件模板
| |-- menu # 菜单管理
| |-- migrations # 数据库迁移
| |-- models.py
| |-- notify_message # 站内信
| |-- notify_template # 站内信模板
| |-- operate_log # 操作日志
| |-- permission # 权限管理
| |-- post # 岗位管理
| |-- role # 角色管理
| |-- tasks.py # 定时/异步任务定义
| |-- tenant # 租户管理
| |-- tests # 测试用例
| |-- urls.py
| |-- user # 用户管理
| `-- user_profile # 个人中心
例如:系统管理——用户管理,对应myapp_system
下的user
目录
每个功能组件目录,一般包括5个文件。
- 例如:系统管理——用户管理,对应
myapp_system
下的user
目录,包括以下内容
sh
user
|-- filters.py # 过滤器类,用于DRF视图过滤查询集
|-- models.py # 数据模型定义,继承Django ORM模型
|-- serializers.py # 序列化器,用于数据格式转换(ORM <-> JSON)
|-- services.py # 业务逻辑层,处理复杂业务规则
`-- views.py # 视图层,处理HTTP请求与响应
myapp_infra 应用APP
基础设施应用APP目录结构
sh
|-- myapp_infra # 基础设施应用APP
| |-- admin.py
| |-- apps.py
| |-- codegen # 代码生成工具
| |-- config # 配置管理
| |-- file # 文件列表
| |-- file_config # 文件配置
| |-- fixtures # 初始化数据
| |-- job # 定时任务调度
| |-- job_log # 定时任务日志
| |-- migrations # 数据库迁移文件
| |-- models.py
| |-- tasks.py # 定时/异步任务定义
| |-- tests # 测试用例
| |-- urls.py
| `-- websocket # WebSocket支持
mars_framework
mars_framework
目录,存放的是项目的框架封装,可供其它应用APP调用。例如:
- viewsets 是对DRF的视图集的二次封装
- db 是对Django模型的二次封装
sh
|-- mars_framework # 项目的框架封装
| |-- db # 数据库相关工具
| |-- exceptions # 自定义异常类
| |-- pagination # 分页工具
| |-- permissions # 权限控制模块
| |-- response # 响应处理模块
| |-- utils # 工具函数集
| `-- viewsets # 视图集基类