Go-sword(利刃)一款基於Go語言的可視化web管理後臺生成工具

Go-sword

Go-sword(利刃)是一款基於Go語言的可視化web管理後臺生成工具git

目標就是快速的建立CRUD可視化的後臺github

根據MySQL的表結構,建立完整的管理後臺界面,開發者無需再重複手動的建立具備CRUD能力的頁面
只須要點擊按鈕便可生成完整的管理後臺golang

136e8b44d5d4acf00d5a63125928bd731587996269.jpg

特色

  1. 一鍵生成,無需寫一行代碼
  2. 支持增長、刪除、編輯、列表、批量刪除、分頁、檢索
  3. 頁面基於Vue.js + iView
  4. 針對每一個數據表都生成了單獨的邏輯文件,開發者能夠求使用Vue或者iView來實現功能更加豐富的頁面

1626ee1d3300ac6db6669d63721d96381587996351.jpg

開始

安裝

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

安裝完成後,確保go-sword命令在GOPATH/bin目錄下,可執行web

啓動服務

go-sword -db {db_database} -password {db_password} -user {db_uesr} -module {module_name}

例如:go-sword -db blog -password 123456 -user root -module go-sword-app數據庫

以上命令,就是鏈接數據庫blog,用戶名root,密碼12345,在go-sword命令的當前目錄下建立項目go-sword-app後端

啓動成功的提示app

Go-Sword will create new project named go-sword-app in current directory

[Server info]
Server port : 8080
Project module : go-sword-app

[db info]
MySQL host : localhost
MySQL port : 3306
MySQL user : root
MySQL password : 123456

Start successful, server is running ...
Please request: http://localhost:8080
參數說明
+---------------------------------------------------+
|                                                   |
|            Welcome to use Go-Sword                |
|                                                   |
|                Visualized tool                    |
|        Fastest to create CRUD background          |
|      https://github.com/sunshinev/go-sword        |
|                                                   |
+---------------------------------------------------+
Usage of go-sword:
  // 要鏈接的數據庫信息
  -db string
      MySQL database
  -host string
      MySQL Host (default "localhost")
  // 重要:module參數單獨做解釋
  -module string
      New project module, the same as  'module' in go.mod file.   (default "go-sword-app/")
  // go-sword 服務啓動的默認端口
  -p string
      Go-sword Server port (default "8080")
  -password string
      MySQL password
  -port int
      MySQL port (default 3306)
  -user string
      MySQL user
參數: -module

-module 參數是表明要建立的項目名稱,同時也是新項目go.mod文件中的module字段的值,這點請務必保持一致。工具

注意

新項目會在運行go-sword命令的當前目錄下,直接建立module目錄,做爲新項目優化

開始使用服務

Start successful, server is running ...
Please request: http://localhost:8080

根據服務啓動的提示,直接點擊http://localhost:8080便可進入web的可視化工具頁面spa

59384a43cbc382dec53dd76d169a5d001587995174.jpg

重要:頁面功能介紹
  1. 首先下拉選擇MySQL 的表格,而後點擊Preview按鈕,便可渲染出須要建立的文件
  2. 首次建立新項目文件須要點擊select all所有選擇,首次建立包含了項目啓動必需的核心文件
  3. 點擊Generate按鈕,既能夠看到提示文件建立成功
  4. 到目前爲止,咱們的後臺已經建立成功了

注意:

  1. 首次建立,文件須要所有選擇
  2. 若是建立第二個管理頁面,那麼能夠只選擇 select diff & new按鈕,而後點擊Generate按鈕
  3. 每次生成新的管理界面後,請重啓新建立的項目

開始使用新項目

進入到咱們新建立的項目目錄

➜  test tree -L 2
.
└── go-sword-app
    ├── controller
    ├── core
    ├── go.mod
    ├── go.sum
    ├── main.go
    ├── model
    ├── resource
    ├── route
    └── view

好比說咱們,剛剛是在test目錄運行的go-sword命令,建立的項目就是test/go-sword-app

咱們進入test/go-sword-app目錄下按照如下命令啓動項目

初始化新項目 go mod init

利用go mod初始化項目,這裏的module就是咱們前面講到的要與項目名稱保持一致!!

go mod init {module}

啓動項目

go run main.go

而後會看到下面的提示,點擊http://localhost:8082既能夠進入後臺管理界面

Enjoy your system ^ ^
Generated by Go-sword
https://github.com/sunshinev/go-sword

[Server info]
Server port : 8082

[db info]
MySQL host : localhost
MySQL port : 3306
MySQL user : root
MySQL password : 123456

Start successful, server is running ...
Please request: http://localhost:8082

管理後臺效果

  1. 後端報錯提醒
  2. 增長、刪除、編輯、列表、批量刪除、分頁、檢索

1626ee1d3300ac6db6669d63721d96381587996351.jpg

一些問題

  1. 由於golang的map結構遍歷亂序的問題,部分頁面輸出的字段順序不能保證和數據庫字段順序一致
  2. 關於module的參數,可能還會有更好的解決方案
  3. 沒有提供用戶註冊、登陸的能力,這也不符合初衷,最開始就是想作的更加基礎,快速建立頁面
  4. 生成的項目代碼,還有很大的優化空間

頁面功能展現

列表

ea1f86ebc1b5c88aaf6484fa078584951587997286.jpg

刪除

70279af696d9a230001f821cdf3a1ac21587997368.jpg

預覽

2d1871a645acc3d3544ad7f77a0d6fca1587997398.jpg

編輯

a9255db26b2af0365655840f6afd27851587997440.jpg

Go-sword fork

若是想要自定義的話,那麼須要注意,Go-sword 項目能夠打包成一個那單獨的命令來執行,由於將全部的靜態文件也進行了打包

靜態文件壓縮命令以下:

go-bindata -o assets/resource/dist.go -pkg resource resource/dist/...
go-bindata -o assets/stub/stub.go -pkg stub stub/...
go-bindata -o assets/view/view.go -pkg view view/...
相關文章
相關標籤/搜索