Become a sponsor

代码生成器是项目的重要工具,可以根据数据库表结构一键生成前后端 CRUD 代码,包括模型、仓库、服务、路由、表单、前端 API、前端页面等全套代码。
代码生成器支持以下功能:
# 生成指定表的代码
python src/modules/generator/generate.py --table=flask_position
# 生成多个表的代码
python src/modules/generator/generate.py --table=flask_position,flask_level
# 生成所有表的代码
python src/modules/generator/generate.py --all登录管理后台,进入「系统工具 → 代码生成」页面:
代码生成器会生成以下文件:
src/modules/{group}/{name}/
├── __init__.py # 模块初始化
├── models.py # 数据模型
├── repository.py # 数据仓库
├── service.py # 业务服务
├── router.py # 路由定义
└── schema.py # 表单验证ui/src/api/{group}/{name}/
└── index.ts # API 接口
ui/src/views/{group}/{name}/
├── index.vue # 列表页面
├── components/ # 组件目录
│ ├── AddModal.vue # 新增弹窗
│ ├── EditModal.vue # 编辑弹窗
│ └── DetailModal.vue # 详情弹窗
└── index.ts # 页面配置代码生成器的配置文件位于 src/modules/generator/config.py:
# 代码生成配置
GENERATOR_CONFIG = {
# 作者名称
'author': 'DjangoAdmin',
# 日期格式
'date_format': '%Y-%m-%d %H:%M:%S',
# 是否覆盖已有文件
'overwrite': False,
# 模板目录
'template_dir': 'src/modules/generator/templates',
# 输出目录
'output_dir': 'src/modules',
}代码生成器使用 Jinja2 模板引擎,模板文件位于 src/modules/generator/templates/ 目录:
templates/
├── backend/
│ ├── models.py.j2 # 模型模板
│ ├── repository.py.j2 # 仓库模板
│ ├── service.py.j2 # 服务模板
│ ├── router.py.j2 # 路由模板
│ └── schema.py.j2 # 表单模板
└── frontend/
├── api.ts.j2 # API 模板
├── index.vue.j2 # 列表页面模板
├── AddModal.vue.j2 # 新增弹窗模板
├── EditModal.vue.j2 # 编辑弹窗模板
└── DetailModal.vue.j2 # 详情弹窗模板模板中可用的变量:
| 变量 | 说明 | 示例 |
|---|---|---|
table_name | 表名 | flask_position |
table_comment | 表注释 | 岗位表 |
module_name | 模块名 | position |
class_name | 类名 | Position |
columns | 字段列表 | [{name, type, comment, ...}] |
author | 作者 | DjangoAdmin |
date | 生成日期 | 2026-09-08 12:00:00 |
| 数据库类型 | Python 类型 | WTForms 类型 | Vue 类型 |
|---|---|---|---|
INT | int | IntegerField | number |
VARCHAR | str | StringField | string |
TEXT | str | TextAreaField | string |
DATETIME | datetime | DateTimeField | string |
DECIMAL | Decimal | DecimalField | number |
TINYINT | int | IntegerField | number |
# 1. 生成代码
python src/modules/generator/generate.py --table=flask_position
# 2. 查看生成的文件
ls -la src/modules/system/position/
# 3. 注册路由
# 编辑 src/routes/v1.py,添加 position_blue 到 BLUEPRINTS 列表
# 4. 添加菜单和权限节点
# 登录管理后台,进入「系统管理 → 菜单管理」添加菜单和权限节点
# 5. 测试接口
# 使用 curl 或 Postman 测试生成的接口如果需要自定义生成的代码风格,可以修改模板文件:
# 编辑模型模板
vim src/modules/generator/templates/backend/models.py.j2
# 编辑服务模板
vim src/modules/generator/templates/backend/service.py.j2
# 编辑前端页面模板
vim src/modules/generator/templates/frontend/index.vue.j2重要提示
DB_PREFIX(默认 flask_)开头idis_delete 字段的过滤BLUEPRINTS 列表代码生成器是项目开发的重要工具,可以根据数据库表结构一键生成前后端 CRUD 代码。支持 CLI 命令行和 Web 管理界面两种使用方式,支持自定义模板和配置。生成的代码遵循项目的分层架构和编码规范,可以直接使用或根据需要进行修改。