GinAdmin
這個專案是以Gin框架為基礎搭建的后臺管理平臺,雖然很多人都認為go是用來開發高性能服務端專案的,但是也難免有要做web管理端的需求,總不能再使用別的語言來開發吧,所以整合出了GinAdmin專案,請大家多提意見指正!
GitHub地址
- https://github.com/gphper/ginadmin
依賴
- golang > 1.8
依賴
- Gin
- BootStrap
- LayUi
- WebUpload
使用檔案
- 開始使用
- 專案目錄
- 分頁
- 日志
- 資料庫
- 定時任務
- 組態檔
- 模板頁面
- 用戶權限
開始使用
-
git 克隆地址
git clone https://github.com/gphper/ginadmin.git -
下載依賴包
go mod download -
配置
conf/config.ini檔案[mysql] username=root password=123456 database=db_beego host=127.0.0.1 port=3306 max_open_conn=50 max_idle_conn=20 [session] session_name=gosession_id [base] port=:8091
專案目錄
|--api // Api介面控制器
|--comment // 封裝的公共方法
|--conf // 組態檔
|--controllers // Admin控制器存在目錄
|--logs // 日志存放目錄
|--middleware //中間件
|--models //Gorm中的model類
|--router //自定義路由目錄
|--statics //css js等靜態檔案目錄
|--uploadfile //上傳檔案目錄
|--views //視圖模板目錄
分頁
- 使用
comment/util.go里面的PageOperation進行分頁adminDb := models.Db.Table("admin_users").Select("nickname","username").Where("uid != ?", 1) adminUserData := comment.PageOperation(c, adminDb, 1, &adminUserList) - 在html中使用
{{ .adminUserData.PageHtml }}
日志
- 自定義日志 在
comment/loggers目錄下新建logger參考 userlog.go 檔案 - 呼叫自定義的的logger寫日志
loggers.UserLogger.Info("無法獲取網址", zap.String("url", "http://www.baidu.com"), zap.Int("attempt", 3), zap.Duration("backoff", time.Second),)
資料庫
-
資料庫遷移,將定義好的model填充寫到下面的
AutoMigrate方法中Db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&AdminUsers{},&AdminGroup{}) -
資料填充,將資料寫入到
models\default.go下面的FillData中
定時任務
- 在
comment/cron/cron.go添加定時執行任務
組態檔
-
現在
conf/conf.go添加配置項的 struct 型別,例如type AppConf struct { BaseConf `ini:"base"` } type BaseConf struct { Port string `ini:"port"` } -
在
conf/conf.ini添加配置資訊[base] port=:8091 -
在代碼中呼叫組態檔的資訊
conf.App.BaseConf.Port
模板頁面
- 所有的后臺模板都寫到
views/template目錄下面,并且分目錄存盤,呼叫時按照目錄/模板名稱的方式呼叫
用戶權限
-
選單權限定義到
comment/menu/menu.go檔案下,定義完之后在用戶組管理里面編輯權限 -
在控制器中可用從
gin.context獲取權限privs,_ := c.Get("userPrivs") -
template 中判斷權限的函式
judgeContainPriv定義在comment/template/default.go檔案下"judgeContainPriv": func(privMap map[string]interface{},priv string)bool { //判斷權限是all的全通過 _,o :=privMap["all"] if o { return true } _,ok := privMap[priv] return ok },
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/279780.html
標籤:其他
