1. go-admin
1.1.1. 前言
GoAdmin 可以帮助你的golang应用快速实现数据可视化,搭建一个数据管理平台。
demo: https://demo.go-admin.cn 账号:admin 密码:admin
demo代码: https://github.com/GoAdminGroup/demo.go-admin.cn
1.1.2. 特征
- 🚀 高生产效率: 10分钟内做一个好看的管理后台
- 🎨 主题: 默认为adminlte,更多好看的主题正在制作中,欢迎给我们留言
- 🔢 插件化: 提供插件使用,真正实现一个插件解决不了问题,那就两个
- ✅ 认证: 开箱即用的rbac认证系统
- ⚙️ 框架支持: 支持大部分框架接入,让你更容易去上手和扩展
1.1.3. 使用
通过以下三步运行:
第一步:导入 sql
第二步:创建 main.go
package main
import (
"github.com/gin-gonic/gin"
_ "github.com/GoAdminGroup/go-admin/adapter/gin"
_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
"github.com/GoAdminGroup/go-admin/engine"
"github.com/GoAdminGroup/go-admin/plugins/admin"
"github.com/GoAdminGroup/themes/adminlte"
"github.com/GoAdminGroup/go-admin/modules/config"
"github.com/GoAdminGroup/go-admin/template"
"github.com/GoAdminGroup/go-admin/template/chartjs"
"github.com/GoAdminGroup/go-admin/template/types"
"github.com/GoAdminGroup/go-admin/examples/datamodel"
"github.com/GoAdminGroup/go-admin/modules/language"
)
func main() {
r := gin.Default()
eng := engine.Default()
// global config
cfg := config.Config{
Databases: config.DatabaseList{
"default": {
Host: "127.0.0.1",
Port: "3306",
User: "root",
Pwd: "root",
Name: "godmin",
MaxIdleCon: 50,
MaxOpenCon: 150,
Driver: "mysql",
},
},
UrlPrefix: "admin",
// STORE 必须设置且保证有写权限,否则增加不了新的管理员用户
Store: config.Store{
Path: "./uploads",
Prefix: "uploads",
},
Language: language.CN,
// 开发模式
Debug: true,
// 日志文件位置,需为绝对路径
InfoLogPath: "/var/logs/info.log",
AccessLogPath: "/var/logs/access.log",
ErrorLogPath: "/var/logs/error.log",
ColorScheme: adminlte.ColorschemeSkinBlack,
}
// Generators: 详见 https://github.com/GoAdminGroup/go-admin/blob/master/examples/datamodel/tables.go
adminPlugin := admin.NewAdmin(datamodel.Generators)
// 增加 chartjs 组件
template.AddComp(chartjs.NewChart())
// 增加 generator, 第一个参数是对应的访问路由前缀
// 例子:
//
// "user" => http://localhost:9033/admin/info/user
//
// adminPlugin.AddGenerator("user", datamodel.GetUserTable)
// 自定义首页
r.GET("/admin", func(ctx *gin.Context) {
engine.Content(ctx, func(ctx interface{}) (types.Panel, error) {
return datamodel.GetContent()
})
})
_ = eng.AddConfig(cfg).AddPlugins(adminPlugin).Use(r)
_ = r.Run(":9033")
}
其他框架的例子: https://github.com/GoAdminGroup/go-admin/tree/master/examples
第三步:运行
GO111MODULE=on go run main.go
访问:http://localhost:9033/admin
更多细节详见 文档说明