快速开始


GoAdmin通过各种适配器使得你在各个web框架中使用都十分的方便。目前支持的web框架有:

你可以选择你拿手的或者业务项目正在用的框架开始,如果上述没有你喜欢的框架,欢迎给我们提issue

下面以gin这个框架为例子,演示搭建过程。

main.go

在你的项目文件夹下新建一个main.go文件,内容如下:

  1. package main
  2. import (
  3. _ "github.com/GoAdminGroup/go-admin/adapter/gin" // 引入适配器,必须引入,如若不引入,则需要自己定义
  4. _ "github.com/GoAdminGroup/themes/adminlte" // 引入主题,必须引入,不然报错
  5. _ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql" // 引入对应数据库引擎
  6. "github.com/GoAdminGroup/go-admin/engine"
  7. "github.com/GoAdminGroup/go-admin/examples/datamodel"
  8. "github.com/GoAdminGroup/go-admin/modules/config"
  9. "github.com/GoAdminGroup/go-admin/modules/language"
  10. "github.com/GoAdminGroup/go-admin/plugins/admin"
  11. "github.com/gin-gonic/gin"
  12. )
  13. func main() {
  14. r := gin.Default()
  15. // 实例化一个GoAdmin引擎对象
  16. eng := engine.Default()
  17. // GoAdmin全局配置,也可以写成一个json,通过json引入
  18. cfg := config.Config{
  19. Databases: config.DatabaseList{
  20. "default": {
  21. Host: "127.0.0.1",
  22. Port: "3306",
  23. User: "root",
  24. Pwd: "root",
  25. Name: "godmin",
  26. MaxIdleCon: 50,
  27. MaxOpenCon: 150,
  28. Driver: config.DriverMysql,
  29. },
  30. },
  31. UrlPrefix: "admin", // 访问网站的前缀
  32. // Store 必须设置且保证有写权限,否则增加不了新的管理员用户
  33. Store: config.Store{
  34. Path: "./uploads",
  35. Prefix: "uploads",
  36. },
  37. Language: language.CN,
  38. }
  39. // 这里引入你需要管理的业务表配置
  40. // 关于Generators,详见 https://github.com/GoAdminGroup/go-admin/blob/master/examples/datamodel/tables.go
  41. adminPlugin := admin.NewAdmin(datamodel.Generators)
  42. // 增加配置与插件,使用Use方法挂载到Web框架中
  43. _ = eng.AddConfig(cfg).AddPlugins(adminPlugin).Use(r)
  44. _ = r.Run(":9033")
  45. }

留意以上代码与注释,对应的步骤都加上了注释,使用十分简单,只需要:

  • 引入适配器,主题与数据库驱动
  • 设置全局的配置项
  • 初始化插件
  • 设置插件与配置
  • 挂载到Web框架中

接着执行go run main.go运行代码,访问:http://localhost:9033/admin/login 默认登录账号:admin默认登录密码:admin

注意:golang版本高于1.11强烈建议开启GO111MODULE=on,如果运行下载依赖有问题,这里提供了依赖包下载:

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

添加自己的业务表进行管理

详见:

{% page-ref page=”plugins/plugins.md” %}

{% page-ref page=”plugins/admin.md” %}

全局配置项说明

https://github.com/GoAdminGroup/go-admin/blob/master/modules/config/config.go

  1. package config
  2. import (
  3. "html/template"
  4. )
  5. type Database struct {
  6. Host string // 地址
  7. Port string // 端口
  8. User string // 用户名
  9. Pwd string // 密码
  10. Name string // 数据库名
  11. MaxIdleCon int // 最大闲置连接数
  12. MaxOpenCon int // 最大打开连接数
  13. Driver string // 驱动名
  14. File string // 文件名
  15. }
  16. // 数据库配置
  17. // 为一个map,其中key为数据库连接的名字,value为对应的数据配置
  18. // 注意:key为default的数据库是默认数据库,也是框架所用的数据库,而你可以
  19. // 配置多个数据库,提供给你的业务表使用,实现对不同数据库的管理。
  20. type DatabaseList map[string]Database
  21. // 存储目录:存储头像等上传文件
  22. type Store struct {
  23. Path string
  24. Prefix string
  25. }
  26. type Config struct {
  27. // 数据库配置
  28. Databases DatabaseList `json:"database"`
  29. // 登录域名
  30. Domain string `json:"domain"`
  31. // 网站语言
  32. Language string `json:"language"`
  33. // 全局的管理前缀
  34. UrlPrefix string `json:"prefix"`
  35. // 主题名
  36. Theme string `json:"theme"`
  37. // 上传文件存储的位置
  38. Store Store `json:"store"`
  39. // 网站的标题
  40. Title string `json:"title"`
  41. // 侧边栏上的Logo
  42. Logo template.HTML `json:"logo"`
  43. // 侧边栏上的Logo缩小版
  44. MiniLogo template.HTML `json:"mini_logo"`
  45. // 登录后跳转的路由
  46. IndexUrl string `json:"index"`
  47. // 是否开始debug模式
  48. Debug bool `json:"debug"`
  49. // Info日志路径
  50. InfoLogPath string `json:"info_log"`
  51. // Error log日志路径
  52. ErrorLogPath string `json:"error_log"`
  53. // Access log日志路径
  54. AccessLogPath string `json:"access_log"`
  55. // 是否开始数据库Sql操作日志
  56. SqlLog bool `json:"sql_log"`
  57. // 是否关闭access日志
  58. AccessLogOff bool `json:"access_log_off"`
  59. // 是否关闭info日志
  60. InfoLogOff bool `json:"info_log_off"`
  61. // 是否关闭error日志
  62. ErrorLogOff bool `json:"error_log_off"`
  63. // 网站颜色主题
  64. ColorScheme string `json:"color_scheme"`
  65. // Session的有效时间,单位为秒
  66. SessionLifeTime int `json:"session_life_time"`
  67. // Cdn链接,为全局js/css配置cdn链接
  68. AssetUrl string `json:"asset_url"`
  69. // 文件上传引擎
  70. FileUploadEngine FileUploadEngine `json:"file_upload_engine"`
  71. // 自定义头部js/css
  72. CustomHeadHtml template.HTML `json:"custom_head_html"`
  73. // 自定义尾部js/css
  74. CustomFootHtml template.HTML `json:"custom_foot_html"`
  75. // 登录页面标题
  76. LoginTitle string `json:"login_title"`
  77. // 登录页面logo
  78. LoginLogo template.HTML `json:"login_logo"`
  79. }