Skip to content

本章概要

代码生成器 Web 管理界面的使用方法,通过可视化界面操作单表生成和批量生成。

Web 管理界面

登录管理后台,进入「开发工具 -> 代码生成」页面,可通过可视化界面操作代码生成。

数据库要求

代码生成器的 Web 界面通过查询 MySQL 的 information_schema 获取表结构信息,仅支持 MySQL 数据库

操作流程

完整操作流程:

1. 登录管理后台
2. 左侧菜单 -> 开发工具 -> 代码生成
3. 在表列表中搜索目标表(支持表名/表注释模糊搜索)
4. 点击表名可查看字段详情(字段名、类型、注释、是否可空等)
5. 单表生成:点击行末「生成」按钮
   批量生成:勾选多表 -> 点击「批量生成」按钮
6. 生成成功后,左侧菜单自动出现新模块入口
7. 进入新模块页面,测试增删改查功能

单表生成

  1. 在表列表中搜索目标表(支持表名和表注释模糊搜索)
  2. 点击目标表行的「生成」按钮
  3. 系统自动解析表结构并生成全部代码
  4. 生成完成后提示成功

批量生成

  1. 勾选多个表(左侧复选框)
  2. 点击表格上方的「批量生成」按钮
  3. 系统逐表生成,完成后提示成功数量

API 接口

Web 界面底层调用 application/generator/ 模块的 API 接口:

查询表分页

GET /generator/page?pageNo=1&pageSize=10&tableName=example

返回数据库表的分页数据,支持按表名和表注释模糊搜索。

查询表详情

GET /generator/detail?tableName=django_example

返回单个表的元数据(表名、注释、引擎、行数、字符集等)。

查询表字段

GET /generator/columns?tableName=django_example

返回表的字段列表(字段名、类型、注释、是否可空、默认值等)。

代码生成

POST /generator/generate

请求体:

json
{
    "tableNames": [
        "django_example|案例表",
        "django_product|商品表"
    ]
}

tableNames 支持三种格式:

格式示例说明
管道分隔"django_example|案例表"表名|注释,注释覆盖数据库表注释
纯表名"django_example"注释从数据库读取
字典{"name": "django_example", "comment": "案例表"}结构化格式

成功返回:

json
{
    "code": 0,
    "msg": "本次共计生成2个模块",
    "data": null,
    "ok": true
}

权限节点

权限标识说明
sys:generator:page查询表分页
sys:generator:detail查询表详情/字段
sys:generator:generate代码生成

与 CLI 的对比

维度CLIWeb 界面
入口python generator.py <表名>开发工具 -> 代码生成
适用场景开发阶段,快速生成运维阶段,可视化操作
批量生成不支持(循环调用)支持(勾选多表)
配置微调--output 导出 -> 编辑 -> --config 导入不支持(直接生成)
生成结果完全一致完全一致
预览模式--dry-run不支持

实现原理

Web 界面的后端实现在 application/generator/ 模块中:

  • services.py:核心业务逻辑,包含 get_table_page()get_table_detail()get_table_columns()generate_tables() 等函数
  • views.py:视图层,处理 HTTP 请求并调用 services
  • urls.py:路由配置

generate_tables() 函数内部调用 generator.pygenerate_config_from_table() 解析表结构,再调用 generator_config.pyCodeGenerator 生成代码(自动模式 auto=True,跳过交互确认)。

总结

Web 管理界面提供可视化的代码生成操作,支持单表生成和批量生成。通过选择数据库表、配置生成选项,一键生成前后端全套代码并自动注册路由和权限。底层与 CLI 共享同一套引擎代码。

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