GinAdmin——基于golang的web管理平台
2021-05-30 00:01
标签:使用 编辑 rap down 判断 int tom cond html 这个项目是以Gin框架为基础搭建的后台管理平台,虽然很多人都认为go是用来开发高性能服务端项目的,但是也难免有要做web管理端的需求,总不能再使用别的语言来开发吧。所以整合出了GinAdmin项目,请大家多提意见指正! git 克隆地址 下载依赖包 配置 数据库迁移,将定义好的model填充写到下面的 数据填充,将数据写入到 现在 在 在代码中调用配置文件的信息 菜单权限定义到 在控制器中可用从 template 中判断权限的函数 GinAdmin——基于golang的web管理平台 标签:使用 编辑 rap down 判断 int tom cond html 原文地址:https://www.cnblogs.com/itsuibi/p/14696493.htmlGinAdmin
GitHub地址
依赖
依赖
使用文档
开始使用
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)
{{ .adminUserData.PageHtml }}
日志
comment/loggers
目录下新建logger参考 userlog.go 文件
loggers.UserLogger.Info("无法获取网址",
zap.String("url", "http://www.baidu.com"),
zap.Int("attempt", 3),
zap.Duration("backoff", time.Second),)
数据库
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")
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
},