1. go-admin

1.1.1. 前言

GoAdmin 可以帮助你的golang应用快速实现数据可视化,搭建一个数据管理平台。

demo: https://demo.go-admin.cnopen in new window 账号:admin 密码:admin

代码地址: https://github.com/GoAdminGroup/go-admin

image-20220411191109666

1.1.2. 特征

  • 🚀 高生产效率: 10分钟内做一个好看的管理后台
  • 🎨 主题: 默认为adminlte,更多好看的主题正在制作中,欢迎给我们留言
  • 🔢 插件化: 提供插件使用,真正实现一个插件解决不了问题,那就两个
  • 认证: 开箱即用的rbac认证系统
  • ⚙️ 框架支持: 支持大部分框架接入,让你更容易去上手和扩展

1.1.3. 使用

通过以下三步运行:

第一步:导入 sql

mysqlopen in new window postgresqlopen in new window sqliteopen in new window

第二步:创建 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

更多细节详见 文档说明open in new window

这里一个超级简单上手的例子open in new window

END 链接