Go-sword 一键生成 CRUD 可视化 web 后台 V2.0.0 升级发布 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sunshinev
V2EX    程序员

Go-sword 一键生成 CRUD 可视化 web 后台 V2.0.0 升级发布

  •  
  •   sunshinev
    sunshinev 2021-07-20 17:29:37 +08:00 3027 次点击
    这是一个创建于 1543 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Go-sword(利刃) V2.0.0

    GitHub last commit GitHub GitHub repo size GitHub stars GitHub forks

    一款基于 Go 语言的可视化 web 管理后台生成工具包 根据 MySQL 的表结构,创建 CRUD 的管理后台界面,开发者无需再重复手动的创建具有 CRUD 能力的页面,只需要点击按钮即可生成完整的管理后台

    官网 https://sunshinev.github.io/go-sword-home/

    官方文档更新可能不及时,请以 GIT README.md 为准

    升级说明

    v2.0.0

    1. 修改为以包引入的方式来启动工具+创建后端
    2. 修改了 stub 的业务逻辑代码
    3. 将所有的代码在生成前,使用 gofmt 进行格式化
    4. 缺点,需要重启项目后端项目才能生效

    v1.0.0

    1. 单独的服务启动项目

    Gosword 会在项目指定目录,释放一个完整的后台代码,包括前端、后端

    重要

    1. 用来生成后端页面的数据表,要有 id,created_at,updated_at 三个必备字段

    安装

    go get -u github.com/sunshinev/go-sword 

    配置文件说明

    项目需要一个配置文件,采用 yaml 格式,除了数据库的配置,主要包括释放的目录、工具端口、后台端口

    db: user: root password: '123456' database: test host: localhost port: 3306 root_path: admin22 # 后端项目释放的目录 tool_port: '8081' # go-sword 代码生成工具的端口 server_port: '8082' # 生成的后台项目的端口 

    GIN 框架中的应用

    1. 在 Gin 项目中的 main 函数中,开启工具,import 代码包
    package main import ( "log" "github.com/app/admin22/sword" "github.com/gin-gonic/gin" gosword "github.com/sunshinev/go-sword" ) func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) // 日志 log.SetFlags(log.Llongfile | log.Ldate) // 1. 开启工具->根据 sql 生成项目 gosword.Init("config/go-sword.yaml").Run() // 原始 gin 项目 _ = r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") } 

    使用gosword.Init加载配置文件,并且在项目中开启工具

    gosword.Init("config/go-sword.yaml").Run() 
    1. 后台创建成功后,加入sword.Run,使用另外一个端口开启后端项目
    func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) // 日志 log.SetFlags(log.Llongfile | log.Ldate) // 1. 开启工具->根据 sql 生成项目 gosword.Init("config/go-sword.yaml").Run() // 2. 加载生成的项目->重新启动 sword.Run("config/go-sword.yaml") // 原始 gin 项目 _ = r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") } 
    9 条回复    2021-07-21 15:58:35 +08:00
    duuu
        1
    duuu  
       2021-07-20 18:18:09 +08:00
    demo 挂了
    efaun
        2
    efaun  
       2021-07-20 19:05:08 +08:00   1
    纯英文页面下面放个 QQ 群好违和,至少弄个 Twitter 吧,下面三个超链居然还是假的
    ca1123
        3
    ca1123  
       2021-07-20 22:17:37 +08:00
    @efaun 我觉得 QQ 挺好的(*/ω\*)
    ca1123
        4
    ca1123  
       2021-07-20 22:43:40 +08:00
    对了, 其它 SQL 数据库呢, 可以搞么?
    ca1123
        5
    ca1123  
       2021-07-20 22:46:20 +08:00
    还有, 你这东西就是相当于一个 web 的 dbvisualizer 么?
    kwanzaa
        6
    kwanzaa  
       2021-07-21 00:07:26 +08:00
    demo 502
    dr1q65MfKFKHnJr6
        7
    dr1q65MfKFKHnJr6  
       2021-07-21 09:20:00 +08:00
    就文档来说,感觉版本不像 2.0, 像是 0.2
    airplayxcom
        8
    airplayxcom  
       2021-07-21 10:39:35 +08:00
    40MB ?
    sunshinev
        9
    sunshinev  
    OP
       2021-07-21 15:58:35 +08:00
    作者想说的话
    Go-sword 其实提供了一种模式,这种模式借鉴于 Yii 框架的 GII 工具。在 GII 模式的基础上,与 VUE+iview2.0 进行融合,进而产出了 Go-sword 项目。
    Go-sword 内部的代码包括前端、后端并非最优解,正如前面所说的,它本身提供了一种快速便捷的开发方式,如果开发者觉得这种模式有利于项目效率,可以 Fork 该项目,修改 stub 文件来满足自己的项目架构

    回复几个问题:
    1. 『还有, 你这东西就是相当于一个 web 的 dbvisualizer 么?』
    他本身提供了快速创建 CRUD 的能力,因为 CURD 是大部分后台所常用的功能。
    我们在使用的时候,需要进行思维发散,也就是说页面生成了,但是接口是可以写自定义业务逻辑的,也就是说相同的 LIST 列表接口,我可以读取其他依赖服务,或者组合其他数据,输出到列表页进行展示。

    而数据的展示方式也不止 LIST 列表这一种模式,前端页面使用 iview 框架,所以 iview 的组件都可以移植到页面中使用


    2. DEMO 挂了
    已经重新上线了

    3. 『纯英文页面下面放个 QQ 群好违和,至少弄个 Twitter 吧,下面三个超链居然还是假的』
    有空多学习,少扯皮
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     954 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 19:22 PVG 03:22 LAX 12:22 JFK 15:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86