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

go-admin - 图1

1.1.2. 特征

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

1.1.3. 使用

通过以下三步运行:

第一步:导入 sql

mysql postgresql sqlite

第二步:创建 main.go

  1. package main
  2. import (
  3. "github.com/gin-gonic/gin"
  4. _ "github.com/GoAdminGroup/go-admin/adapter/gin"
  5. _ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql"
  6. "github.com/GoAdminGroup/go-admin/engine"
  7. "github.com/GoAdminGroup/go-admin/plugins/admin"
  8. "github.com/GoAdminGroup/themes/adminlte"
  9. "github.com/GoAdminGroup/go-admin/modules/config"
  10. "github.com/GoAdminGroup/go-admin/template"
  11. "github.com/GoAdminGroup/go-admin/template/chartjs"
  12. "github.com/GoAdminGroup/go-admin/template/types"
  13. "github.com/GoAdminGroup/go-admin/examples/datamodel"
  14. "github.com/GoAdminGroup/go-admin/modules/language"
  15. )
  16. func main() {
  17. r := gin.Default()
  18. eng := engine.Default()
  19. // global config
  20. cfg := config.Config{
  21. Databases: config.DatabaseList{
  22. "default": {
  23. Host: "127.0.0.1",
  24. Port: "3306",
  25. User: "root",
  26. Pwd: "root",
  27. Name: "godmin",
  28. MaxIdleCon: 50,
  29. MaxOpenCon: 150,
  30. Driver: "mysql",
  31. },
  32. },
  33. UrlPrefix: "admin",
  34. // STORE 必须设置且保证有写权限,否则增加不了新的管理员用户
  35. Store: config.Store{
  36. Path: "./uploads",
  37. Prefix: "uploads",
  38. },
  39. Language: language.CN,
  40. // 开发模式
  41. Debug: true,
  42. // 日志文件位置,需为绝对路径
  43. InfoLogPath: "/var/logs/info.log",
  44. AccessLogPath: "/var/logs/access.log",
  45. ErrorLogPath: "/var/logs/error.log",
  46. ColorScheme: adminlte.ColorschemeSkinBlack,
  47. }
  48. // Generators: 详见 https://github.com/GoAdminGroup/go-admin/blob/master/examples/datamodel/tables.go
  49. adminPlugin := admin.NewAdmin(datamodel.Generators)
  50. // 增加 chartjs 组件
  51. template.AddComp(chartjs.NewChart())
  52. // 增加 generator, 第一个参数是对应的访问路由前缀
  53. // 例子:
  54. //
  55. // "user" => http://localhost:9033/admin/info/user
  56. //
  57. // adminPlugin.AddGenerator("user", datamodel.GetUserTable)
  58. // 自定义首页
  59. r.GET("/admin", func(ctx *gin.Context) {
  60. engine.Content(ctx, func(ctx interface{}) (types.Panel, error) {
  61. return datamodel.GetContent()
  62. })
  63. })
  64. _ = eng.AddConfig(cfg).AddPlugins(adminPlugin).Use(r)
  65. _ = r.Run(":9033")
  66. }

其他框架的例子: https://github.com/GoAdminGroup/go-admin/tree/master/examples

第三步:运行

  1. GO111MODULE=on go run main.go

访问:http://localhost:9033/admin

更多细节详见 文档说明

这里一个超级简单上手的例子