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  # 视图集基类

后端技术选型 ​

系统环境 ​

名称说明版本
PythonPython环境3.11(推荐)
Nginx反向代理服务器1.26
GunicornWSGI HTTP 服务器23.0.0
UvicornASGI 服务器0.34.2

主框架 ​

名称说明版本
DjangoWeb 框架4.2.20
Django REST framework (DRF)RESTful API 框架3.15.2
Django REST framework Simple JWTJWT 认证库5.5.0
DRF SpectacularAPI 文档生成器0.28.0
Celery定时/异步任务队列5.5.1
FlowerCelery 监控2.0.1
ChannelsWebSocket支持4.2.2
Pytest测试框架8.3.5

其它工具 ​

名称说明版本
Django REST framework Camel Case后端蛇型与前端驼峰命名转换1.4.2
MySQLclientMySQL 数据库驱动2.2.7
OpenpyxlExcel 文件处理3.1.5
Pillow图像处理库,验证码支持11.2.1
RedisRedis客户端5.2.1

前端技术选型 ​

名称说明版本
Vuevue 框架3.5.12
Vite开发与构建工具5.1.4
Element PlusUI 组件库2.9.1
TypeScriptJavaScript 的超集5.3.3
piniaVue 存储库 替代 vuex52.1.7
vueuse常用工具集10.9.0
vue-i18n国际化9.10.2
vue-routervue 路由4.4.5
UnoCSS下一代工具优先的 CSS 框架0.58.5
iconify在线图标库3.1.1
wangeditor富文本编辑器5.1.23