Github地址:github.com/sunshinev/go-sword
一款基於Go語言的視覺化web管理後臺生成工具
目標就是快速的建立CRUD視覺化的後臺
根據MySQL的表結構,建立完整的管理後臺介面,開發者無需再重複手動的建立具有CRUD能力的頁面
只需要點選按鈕即可生成完整的管理後臺
特點
- 一鍵生成,無需寫一行程式碼
- 支援增加、刪除、編輯、列表、批量刪除、分頁、檢索
- 頁面基於Vue.js + iView
- 針對每個資料表都生成了單獨的邏輯檔案,開發者可以求使用Vue或者iView來實現功能更加豐富的頁面
開始
安裝
go get -u github.com/sunshinev/go-sword
安裝完成後,確保go-sword
命令在GOPATH/bin
目錄下,可執行
啟動服務
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
啟動成功的提示
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的視覺化工具頁面
重要:頁面功能介紹
- 首先下拉選擇MySQL 的表格,然後點選
Preview
按鈕,即可渲染出需要建立的檔案 - 首次建立新專案檔案需要點選
select all
全部選擇,首次建立包含了專案啟動必需的核心檔案 - 點選
Generate
按鈕,既可以看到提示檔案建立成功 - 到目前為止,我們的後臺已經建立成功了
注意:
- 首次建立,檔案需要全部選擇
- 如果建立第二個管理頁面,那麼可以只選擇
select diff & new
按鈕,然後點選Generate
按鈕 - 每次生成新的管理介面後,請重啟新建立的專案
開始使用新專案
進入到我們新建立的專案目錄
➜ 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
管理後臺效果
- 後端報錯提醒
- 增加、刪除、編輯、列表、批量刪除、分頁、檢索
一些問題
- 因為golang的map結構遍歷亂序的問題,部分頁面輸出的欄位順序不能保證和資料庫欄位順序一致
- 關於
module
的引數,可能還會有更好的解決方案 - 沒有提供使用者註冊、登入的能力,這也不符合初衷,最開始就是想做的更加基礎,快速建立頁面
- 生成的專案程式碼,還有很大的優化空間
頁面功能展示
列表
刪除
預覽
編輯
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/...
本作品採用《CC 協議》,轉載必須註明作者和本文連結