Skip to content

本章概要

代码生成器 CLI 模式的使用方法,包括单表生成、预览模式和配置导出。

CLI 命令行使用

CLI 入口为项目根目录的 generator.py,内部包含 TableSchemaParser 解析器,并调用 generator_config.py 中的 CodeGenerator 引擎。适合开发阶段快速生成单个模块。

基本用法

bash
# 解析表结构并生成模块(最常用)
python generator.py django_example

执行后自动完成:

  1. 从数据库解析 django_example 表结构
  2. 生成后端模块代码到 application/example/
  3. 生成前端页面到 ui/src/views/tool/example/ui/src/api/tool/example.ts
  4. 自动追加路由到 application/urls.py
  5. 自动注册应用到 settings.pyINSTALLED_APPS
  6. 自动创建菜单和权限节点

预览模式

使用 --dry-run 仅解析表结构并打印配置摘要,不执行代码生成:

bash
python generator.py django_example --dry-run

输出示例:

==============================================================
数据库表结构解析和代码生成工具
==============================================================
正在解析表: django_example
表结构解析成功

------------------------------------------------------------
生成配置摘要:
------------------------------------------------------------
  应用名称: example
  模块名称: 案例
  模型类名: Example
  字段数量: 5
  是否有排序: True
  是否有状态: True

字段列表:
  - name: 案例名称 (CharField)
  - avatar: 案例图片 (CharField)
  - type: 案例类型:1-类型1 2-类型2 3-类型3 4-类型4 (IntegerField)
    选项: [(1, '类型1'), (2, '类型2'), (3, '类型3'), (4, '类型4')]
  - status: 案例状态:1-正常 2-禁用 (IntegerField)
    选项: [(1, '正常'), (2, '禁用')]
  - sort: 排序 (IntegerField)

==============================================================
预览模式 - 不执行代码生成
==============================================================

导出配置

使用 --output 将解析结果导出为 JSON 配置文件:

bash
# 预览并导出配置
python generator.py django_example --dry-run --output config.json

# 生成代码并同时保存配置
python generator.py django_example --output config.json

导出的 config.json 包含完整的生成配置,可手动编辑后重新使用。

使用配置文件生成

使用 --config 加载已有的 JSON 配置文件,跳过表解析:

bash
python generator.py --config config.json

适用场景:

  • 需要微调字段配置后重新生成
  • 表结构已不存在但配置文件保留
  • 跨项目复用配置

完整参数

参数简写说明
table_name-数据库表名(位置参数,可选)
--config-c使用已有的 JSON 配置文件(跳过表解析)
--dry-run-d仅生成配置,不执行代码生成
--output-o将配置导出为 JSON 文件

典型工作流

快速生成

bash
python generator.py django_example

预览 -> 微调 -> 生成

bash
# 1. 预览配置
python generator.py django_example --dry-run --output config.json

# 2. 编辑 config.json(调整字段属性、注释等)
vim config.json

# 3. 用配置文件生成
python generator.py --config config.json

仅保存配置

bash
python generator.py django_example --output config.json

环境要求

运行 CLI 前需确保:

  1. 数据库可访问:CLI 复用 .env 中的数据库配置(通过 config/env.py 加载),需确保 MySQL 服务正常且连接信息正确
  2. Python 依赖已安装pip install -r requirements.txt(包含 Jinja2、Django 等)
  3. 表已存在:目标表需已在数据库中创建完成
  4. Django 环境可用:脚本会自动初始化 Django 环境(django.setup()
  5. 编码要求:Windows 环境下确保终端使用 UTF-8 编码(chcp 65001

数据库要求

CLI 命令行工具通过查询 MySQL 的 information_schema 获取表结构信息,仅支持 MySQL 数据库

常见错误

表不存在

操作失败: 表 django_xxx 不存在或无业务字段

原因:数据库中不存在该表,或表名拼写错误。

解决:确认表名正确,且表已在数据库中创建。

数据库连接失败

Django环境初始化失败: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server...")

原因.env 中的数据库配置错误,或 MySQL 服务未启动。

解决:检查 .env 中的 DATABASE_HOSTDATABASE_PORTDATABASE_USERDATABASE_PASSWORD 配置。

编码错误

SyntaxError: Non-UTF-8 code start with '\xc8' in file ...

原因:Windows 终端编码不是 UTF-8。

解决:执行 chcp 65001 切换终端编码。

注意事项

  1. 表名支持带前缀django_exampleexample 都可以,脚本会自动处理 django_ 前缀(前缀由 .env 中的 DATABASE_PREFIX 配置)
  2. 数据库连接:CLI 复用 .env 中的数据库配置,确保数据库可正常访问
  3. 编码要求:Windows 环境下确保终端使用 UTF-8 编码(chcp 65001
  4. 交互模式:默认为交互模式,会询问是否执行迁移和创建菜单权限;Web 界面调用时使用自动模式(auto=True

总结

CLI 命令行模式通过 python generator.py 启动,支持从数据库表解析生成、从配置文件生成、预览模式和配置导出。生成后自动追加路由、注册应用、创建菜单权限节点。

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