Skip to content

项目结构

目录结构

项目目录结构遵循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目录

image-20250614144115602

每个功能组件目录,一般包括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支持

image-20250614144144248

mars_framework

mars_framework目录,存放的是项目的框架封装,可供其它应用APP调用。例如:

  • viewsets 是对DRF的视图集的二次封装
  • db 是对Django模型的二次封装
sh
|-- mars_framework  # 项目的框架封装
|   |-- db  # 数据库相关工具
|   |-- exceptions  # 自定义异常类
|   |-- pagination  # 分页工具
|   |-- permissions  # 权限控制模块
|   |-- response  # 响应处理模块
|   |-- utils  # 工具函数集
|   `-- viewsets  # 视图集基类