代码生成器
代码生成器通过读取数据库表结构,自动生成完整 CRUD 业务模块的全部 8 个文件,大幅提升开发效率。
功能说明
- 代码生成基础配置分页查询
- 代码生成基础配置新增 / 修改 / 删除
- 获取数据库表列表
- 获取表字段信息
- 编辑字段配置(显示类型、是否列表/查询/编辑显示等)
- 预览生成的代码
- 执行代码生成(生成到项目内)
API 接口
所有接口均需要 sys:dev:gen-* 权限。
生成基础配置
| 方法 | 路径 | 权限标识 | 说明 |
|---|---|---|---|
| GET | /api/v1/sys/dev/gen/basic/page | sys:dev:gen-basic-page | 获取代码生成基础分页 |
| POST | /api/v1/sys/dev/gen/basic/create | sys:dev:gen-basic-create | 添加代码生成基础 |
| POST | /api/v1/sys/dev/gen/basic/modify | sys:dev:gen-basic-modify | 编辑代码生成基础 |
| POST | /api/v1/sys/dev/gen/basic/delete | sys:dev:gen-basic-delete | 删除代码生成基础 |
| GET | /api/v1/sys/dev/gen/basic/detail | sys:dev:gen-basic-detail | 获取代码生成基础详情 |
| GET | /api/v1/sys/dev/gen/basic/language_types | sys:dev:gen-basic-language-types | 获取语言类型列表 |
| GET | /api/v1/sys/dev/gen/basic/tables | sys:dev:gen-basic-tables | 获取所有表信息 |
| GET | /api/v1/sys/dev/gen/basic/table_columns | sys:dev:gen-basic-table-columns | 获取表内所有字段信息 |
| POST | /api/v1/sys/dev/gen/basic/exec_gen_pro | sys:dev:gen-basic-exec-gen-pro | 执行代码生成(项目内) |
| GET | /api/v1/sys/dev/gen/basic/preview_gen | sys:dev:gen-basic-preview-gen | 预览代码生成 |
生成配置(字段级)
| 方法 | 路径 | 权限标识 | 说明 |
|---|---|---|---|
| GET | /api/v1/sys/dev/gen/config/list | sys:dev:gen-config-list | 获取代码生成配置列表 |
| POST | /api/v1/sys/dev/gen/config/modify | sys:dev:gen-config-modify | 编辑代码生成配置 |
| POST | /api/v1/sys/dev/gen/config/delete | sys:dev:gen-config-delete | 删除代码生成配置 |
| GET | /api/v1/sys/dev/gen/config/detail | sys:dev:gen-config-detail | 获取代码生成配置详情 |
| POST | /api/v1/sys/dev/gen/config/modify_batch | sys:dev:gen-config-modify-batch | 批量编辑代码生成配置 |
使用流程
1. 选择数据库表 → GET /api/v1/sys/dev/gen/basic/tables
2. 查看表字段 → GET /api/v1/sys/dev/gen/basic/table_columns
3. 创建生成配置 → POST /api/v1/sys/dev/gen/basic/create
{ "table_name": "sys_banner", "module_path": "sys/banner" }
4. 编辑字段配置(可选)→ POST /api/v1/sys/dev/gen/config/modify_batch
5. 预览代码 → GET /api/v1/sys/dev/gen/basic/preview_gen
6. 执行生成 → POST /api/v1/sys/dev/gen/basic/exec_gen_pro生成的文件
执行生成后,在 modules/{module_path}/ 目录下创建 8 个文件:
| 文件 | 说明 |
|---|---|
models.py | SQLAlchemy ORM 模型(Mapped + mapped_column) |
params.py | Pydantic 请求/响应模型(VO, PageParam, ExportParam, ImportParam) |
dao.py | 数据访问层(继承 BaseDAO) |
service.py | 业务逻辑层(page/create/modify/remove/detail/export/template/import) |
api/v1/api.py | FastAPI 路由定义 + @HeiCheckPermission 装饰器 |
__init__.py | 模块初始化 |
api/__init__.py | API 层初始化 |
api/v1/__init__.py | v1 版本层初始化 |
模板引擎
代码生成使用 Jinja2 模板引擎,模板文件位于 modules/dev/templates/ 目录。
后置步骤
代码生成完成后,需要手动注册路由:
python
# core/app/router.py
from modules.<module_path> import router
app.include_router(router)