:::tip 本章概要 代码生成器 Web 管理界面的使用方法,通过可视化界面操作单表生成和批量生成。 ::: # Web 管理界面 登录管理后台,进入「开发工具 -> 代码生成」页面,可通过可视化界面操作代码生成。 :::warning 数据库要求 代码生成器的 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 的对比 | 维度 | CLI | Web 界面 | |:----|:----|:----| | 入口 | `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.py` 的 `generate_config_from_table()` 解析表结构,再调用 `generator_config.py` 的 `CodeGenerator` 生成代码(自动模式 `auto=True`,跳过交互确认)。 ## 总结 Web 管理界面提供可视化的代码生成操作,支持单表生成和批量生成。通过选择数据库表、配置生成选项,一键生成前后端全套代码并自动注册路由和权限。底层与 CLI 共享同一套引擎代码。