最完整的GoAdminGroup/go-admin入门指南:从安装到部署仅需30分钟
【免费下载链接】go-admin GoAdminGroup/go-admin 是一个用于快速构建后台管理系统的 Golang 开发框架。适合在 Golang 应用开发中使用,提供丰富的模块和组件,简化后台管理系统的开发流程。特点是提供了简洁的 API、自动化 CRUD 操作和易于扩展的插件体系。 项目地址: https://gitcode.***/gh_mirrors/goa/go-admin
你还在为构建Golang后台管理系统而烦恼吗?本文将带你快速掌握GoAdminGroup/go-admin框架的使用,从安装到部署仅需30分钟,让你轻松搭建专业的后台管理系统。读完本文,你将学会如何初始化项目、配置数据库、创建数据模型、自定义页面以及部署应用。
项目简介
GoAdminGroup/go-admin是一个用于快速构建后台管理系统的Golang开发框架。它提供了简洁的API、自动化CRUD操作和易于扩展的插件体系,适合在Golang应用开发中使用。
官方文档:README.md 项目教程:README_***.md
GoAdmin具有以下特点:
- 快速:十分钟内构建生产级别的管理面板应用
- 主题:支持美观的UI主题(默认adminlte,更多主题即将推出)
- 插件:丰富的插件系统(更多强大的插件正在开发中)
- RBAC:开箱即用的RBAC权限系统
- 框架支持:兼容大多数Go Web框架
安装步骤
环境准备
在开始之前,请确保你的环境中已经安装了Go(建议1.16+版本)。
快速安装
通过以下三个简单步骤即可快速启动GoAdmin项目:
$ mkdir new_project && cd new_project
$ go install github.***/GoAdminGroup/adm@latest
$ adm init web
这条命令会创建一个新的项目目录,并使用GoAdmin的命令行工具初始化一个基础的Web项目结构。
项目配置
配置文件
GoAdmin支持通过配置文件或代码方式进行配置。配置文件可以是JSON或YAML格式,位于modules/config/目录下。
配置文件示例:modules/config/config.yaml
数据库配置
在配置文件中,你需要设置数据库连接信息。以下是一个MySQL数据库的配置示例:
cfg := config.Config{
Env: config.EnvLocal,
Databases: config.DatabaseList{
"default": {
Host: "127.0.0.1",
Port: "3306",
User: "root",
Pwd: "root",
Name: "godmin",
MaxIdleConns: 50,
MaxOpenConns: 150,
ConnMaxLifetime: time.Hour,
Driver: config.DriverMysql,
},
},
// 其他配置...
}
你也可以使用SQLite数据库,只需要修改驱动和文件路径:
//Driver: config.DriverSqlite,
//File: "../datamodel/admin.db",
数据库迁移文件:data/migrations/
快速上手示例
以Gin框架为例
以下是一个使用Gin框架集成GoAdmin的完整示例:
package main
import (
"io/ioutil"
"log"
"os"
"os/signal"
"time"
_ "github.***/GoAdminGroup/go-admin/adapter/gin"
_ "github.***/GoAdminGroup/go-admin/modules/db/drivers/mysql"
_ "github.***/GoAdminGroup/themes/sword"
"github.***/GoAdminGroup/go-admin/engine"
"github.***/GoAdminGroup/go-admin/examples/datamodel"
"github.***/GoAdminGroup/go-admin/modules/config"
"github.***/GoAdminGroup/go-admin/modules/language"
"github.***/GoAdminGroup/go-admin/plugins/example"
"github.***/GoAdminGroup/go-admin/template"
"github.***/GoAdminGroup/go-admin/template/chartjs"
"github.***/GoAdminGroup/themes/adminlte"
"github.***/gin-gonic/gin"
)
func main() {
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = ioutil.Discard
r := gin.New()
e := engine.Default()
cfg := config.Config{
// 配置信息...
}
template.Add***p(chartjs.NewChart())
examplePlugin := example.NewExample()
if err := e.AddConfig(&cfg).
AddGenerators(datamodel.Generators).
AddGenerator("user", datamodel.GetUserTable).
AddDisplayFilterXssJsFilter().
AddPlugins(examplePlugin).
Use(r); err != nil {
panic(err)
}
r.Static("/uploads", "./uploads")
e.HTML("GET", "/admin", datamodel.GetContent)
go func() {
_ = r.Run(":9033")
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit
log.Print("closing database connection")
e.MysqlConnection().Close()
}
完整示例代码:examples/gin/main.go
数据模型定义
GoAdmin使用数据模型来定义数据库表结构和管理界面。以下是一个用户表的数据模型示例:
func GetUserTable(ctx *context.Context) table.Table {
userTable := table.NewDefaultTable(table.DefaultConfig())
info := userTable.GetInfo().SetFilterFormLayout(form.LayoutThreeCol)
info.AddField("ID", "id", db.Int).FieldSortable()
info.AddField("用户名", "username", db.Varchar).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
info.AddField("邮箱", "email", db.Varchar).FieldFilterable(types.FilterType{Operator: types.FilterOperatorLike})
info.AddField("创建时间", "created_at", db.Datetime).FieldSortable()
info.SetTable("users").SetTitle("用户").SetDescription("用户管理")
form := userTable.GetForm()
form.AddField("用户名", "username", db.Varchar).SetRequired(true)
form.AddField("密码", "password", db.Varchar).SetRequired(true).FieldType(form.Password)
form.AddField("邮箱", "email", db.Varchar).SetRequired(true).FieldType(form.Email)
form.SetTable("users").SetTitle("用户").SetDescription("用户管理")
return userTable
}
数据模型示例:examples/datamodel/user.go
功能模块介绍
认证模块
GoAdmin提供了完整的认证系统,位于modules/auth/目录下。它支持基于会话的认证和RBAC权限控制。
认证模块源码:modules/auth/
插件系统
GoAdmin具有强大的插件系统,可以扩展管理系统的功能。插件示例位于plugins/目录下。
示例插件:plugins/example/
模板组件
GoAdmin提供了丰富的模板组件,用于构建管理界面。这些组件位于template/***ponents/目录下。
组件源码:template/***ponents/
图表支持
GoAdmin集成了Chart.js用于数据可视化。图表相关代码位于template/chartjs/目录下。
图表组件:template/chartjs/
部署指南
Docker部署
项目提供了Dockerfile和docker-***pose.yml文件,可以快速构建和部署应用。
Docker配置:Dockerfile Docker ***pose配置:docker-***pose.yml
使用Docker ***pose部署:
$ docker-***pose up -d
手动部署
- 编译项目:
$ go build -o go-admin main.go
- 运行应用:
$ ./go-admin
- 访问管理界面:
打开浏览器访问 http://localhost:9033/admin,使用默认账号admin/admin登录。
总结
通过本文的介绍,你已经了解了GoAdminGroup/go-admin的基本安装、配置和使用方法。GoAdmin提供了丰富的功能和灵活的扩展机制,可以帮助你快速构建专业的后台管理系统。
如果你想深入了解更多功能,可以参考以下资源:
- 官方文档:README.md
- 开发指南:CONTRIBUTING.md
- 测试用例:tests/
希望这篇指南能帮助你快速上手GoAdmin,如果你有任何问题或建议,欢迎参与项目的开发和讨论!
【免费下载链接】go-admin GoAdminGroup/go-admin 是一个用于快速构建后台管理系统的 Golang 开发框架。适合在 Golang 应用开发中使用,提供丰富的模块和组件,简化后台管理系统的开发流程。特点是提供了简洁的 API、自动化 CRUD 操作和易于扩展的插件体系。 项目地址: https://gitcode.***/gh_mirrors/goa/go-admin