Files
djangoadmin-wiki/DjangoAdmin_Django_NaiveVue/zh/volume5/web-ui.md
T
2026-09-12 23:12:15 +08:00

137 lines
3.9 KiB
Markdown

:::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 共享同一套引擎代码。