Skip to content

模块开发实战概述

本章以「案例管理(Example)」模块为完整案例,手把手演示从零开发一个业务模块的全流程。学完本章后,你将掌握项目中任意模块的开发方式。

你将学到什么

通过本章的实战演练,你将完整经历以下开发环节:

步骤文件说明
1. 数据模型models.py定义数据库表结构,继承 BaseModel
2. 表单验证forms.pyDjango ModelForm 验证,中文错误提示
3. 业务逻辑services.py实现增删改查、分页、状态管理
4. 视图层views.py类视图,登录校验 + 权限控制 + 操作日志
5. 路由注册urls.py模块路由 + 主路由注册
6. 权限配置菜单管理配置权限节点 sys:module:action
7. 前端 APIapi/tool/example.ts封装 HTTP 请求
8. 前端页面views/tool/example/列表页 + 编辑弹窗 + 详情弹窗

案例模块:案例管理

选择「案例管理(Example)」作为案例的原因:

  1. 结构典型:包含完整的 CRUD + 状态管理 + 批量删除,覆盖大多数业务场景
  2. 字段丰富:涵盖字符串、整数、图片、状态枚举、排序等常见字段类型
  3. 代码规范:由代码生成器生成,遵循项目统一的开发规范
  4. 前后端完整:后端 5 个文件 + 前端 5 个文件,总计约 1500 行代码

模块文件总览

后端(application/example/)
├── models.py          # 数据模型(继承 BaseModel)
├── forms.py           # 表单验证(Django ModelForm)
├── services.py        # 业务逻辑层(CRUD 函数)
├── views.py           # 视图层(类视图 + 装饰器)
├── urls.py            # 路由配置
├── apps.py            # 应用配置
├── admin.py           # Django Admin 注册
└── migrations/        # 数据库迁移文件

前端(ui/src/)
├── api/tool/
│   └── example.ts     # API 请求封装
└── views/tool/example/
    ├── index.vue      # 主页面:搜索 + 表格 + 操作
    ├── edit.vue       # 编辑弹窗:新增/编辑表单
    ├── detail.vue     # 详情弹窗:查看记录详情
    ├── columns.ts     # 表格列定义
    └── querySchemas.ts # 搜索表单 Schema

数据库表结构

案例表 django_example 结构如下:

字段类型说明
idint主键,自增
namevarchar(100)案例名称
avatarvarchar(255)案例图片
typeint案例类型:1-类型1 2-类型2 3-类型3 4-类型4
statusint案例状态:1-正常 2-禁用
sortint排序权重
create_uservarchar(50)创建人
create_timedatetime创建时间
update_uservarchar(50)更新人
update_timedatetime更新时间
is_deletetinyint软删除标记:0-正常 1-已删除

其中 idcreate_usercreate_timeupdate_userupdate_timeis_delete 由基类 BaseModel 自动提供,业务字段仅需定义 nameavatartypestatussort

开发顺序

建议按以下顺序逐步开发,每完成一步即可验证:

1. models.py     → 建表,确认数据库中有 django_example 表
2. forms.py      → 定义表单验证规则
3. services.py   → 业务逻辑层(CRUD 函数)
4. views.py      → API 视图(类视图 + 装饰器)
5. urls.py       → 注册路由
6. 权限配置       → 在菜单管理中添加权限节点
7. 前端 API       → 封装 HTTP 请求
8. 前端页面       → 列表页 + 编辑弹窗 + 详情弹窗

本章每一步都附有完整代码和详细注释。建议对照项目中 application/example/ 目录下的实际源码一起阅读,加深理解。

模块开发五步模式

模块开发遵循固定的五步模式:

Model → Form → Service → View → URL
步骤文件职责
Modelmodels.py定义数据模型,继承 BaseModel,配置表名和字段
Formforms.py定义表单验证,绑定模型,设置中文错误提示
Serviceservices.py实现业务逻辑,所有 CRUD 操作封装为独立函数
Viewviews.py定义 HTTP 视图,组合登录校验、权限控制、操作日志
URLurls.py注册路由,将 URL 路径映射到视图类

统一响应格式

所有 API 接口使用 utils/R.py 提供的统一响应格式:

python
# 成功响应
{"code": 0, "data": {...}, "msg": "操作成功", "ok": true}

# 失败响应
{"code": 1, "data": null, "msg": "操作失败", "ok": false}

总结

模块开发实战以案例管理(Example)为例,完整演示从 Model → Form → Service → View → URL → 权限配置 → 前端 API → 前端页面的全流程。每一步都附有完整代码和详细注释,建议对照实际源码一起阅读。

小蚂蚁云团队 · 提供技术支持