scaffold revel 项目脚手架 scaffold

James2016-01-08 08:07:53 • 2566 次点击    
这是一个分享于 2016-01-08 08:07:53 的项目,其中的信息可能已经有所发展或是发生改变。

scaffold

scaffold, generate revel project by database schema

脚手架工具, 通过定义数据表,一键生成Revel管理平台项目。

特点

通过数据表定义, 一键生成管理平台

[索引页]

index

[列表页]

list

[新增页]

add

[更新页]

update

[详情页]

detail

安装

本工具会执行 goimports 工具格式化生成的文件, 请提前安装好该工具.

$: go get github.com/liujianping/scaffold

快速开始

创建 Revel 项目

$: revel new [project/path]

编辑 项目配置 conf/app.conf 文件, 增加相应数据库配置。


db.driver = mysql
db.host = 127.0.0.1
db.port = 3306
db.username = [username]
db.password = [password]
db.database = [database]

定义数据结构

定义数据结构说明如下:

CREATE TABLE `accounts` (
  `id`          INT UNSIGNED     NOT NULL  PRIMARY KEY AUTO_INCREMENT COMMENT 'caption:"编号"',
  `name`        VARCHAR(32)      NOT NULL  DEFAULT '' COMMENT 'index:"y" caption:"名称" update:"y" query:"like" valid:"required(),min(6),max(16)"',
  `mailbox`     VARCHAR(128)     NOT NULL  DEFAULT '' COMMENT 'index:"y" caption:"邮箱" update:"y" query:"like" valid:"required(),email()"',
  `sex`         TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'index:"y" caption:"性别" update:"y"',
  `description` VARCHAR(256)     NOT NULL  DEFAULT '' COMMENT 'caption:"描述" update:"y"',
  `password`    VARCHAR(32)      NOT NULL  DEFAULT '' COMMENT 'caption:"密码" update:"y" valid:"required()"',
  `head_url`    VARCHAR(255)     NOT NULL  DEFAULT '' COMMENT 'caption:"头像" update:"y"',
  `status`      TINYINT(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'index:"y" caption:"状态" update:"y" query:"eq"',
  `create_at`   TIMESTAMP(6)     NOT NULL  DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'caption:"创建时间"',
  `update_at`   TIMESTAMP(6)     NOT NULL  DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT 'index:"y" caption:"更新时间"'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'index:"y" caption:"会员账号"';

通过在数据表定义中的注释说明中, 增加脚手架生成规则。具体规则如下:

表规则

-   index
    index:"y" 表示该表需要在列表页(/)中建立索引, 否则不建立索引

-   caption
    caption:"xxxx" 表示该表的可读性名称

列规则

-   index
    index:"y" 表示该列需要在列表页(/accounts.index)中展示, 否则不展示

-   caption
    caption:"xxxx" 表示该列的可读性名称

-   query
    query:"like" 表示在列表页(/accounts.index)查询条件面板中增加相应查询字段。
                 具体查询运算符包括: like,llike,rlike,eq,gt,ge,lt,le

-   valid
    valid:"required(),min(6),max(16),email(),length(8)"
                表示在进行该列的增加、更新操作时, 需要进行的验证规则

-   update
    update:"y"  表示该列在更新页面需要进行更新操作,否则会使用hidden控件进行隐藏操作。

生成代码

//! 初始化 
$: scaffold -f revel init [project/path]  

//! 生成模块代码 [mvc]
$: scaffold -f revel module  [project/path]  [table_name1] [table_name2] ...

//! 生成模型代码 [m]
$: scaffold -f revel model  [project/path]  [table_name1] [table_name2] ...

//! 生成视图代码 [v]
$: scaffold -f revel view  [project/path]  [table_name1] [table_name2] ...

//! 生成控制器代码 [c]
$: scaffold -f revel controller  [project/path]  [table_name1] [table_name2] ...

//! 建立索引路由
$: scaffold -f revel index [project/path]

运行 Revel 项目

$: revel run [project/path]

TODO

  • 通用 HTML 控件生成
  • 其它框架支持(beego等)

code generator for go, based on database schema. 基于数据库定义的代码生成器.Read More

Latest commit to the master branch on 8-16-2016
Download as zip
授权协议:
开发语言:
go 查看源码»
2566 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传