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