当前位置:首页 > 技术文章 > 正文内容

go-admin开源项目,快速搭建一个管理后台系统,直接二次开发上线

zonemu1个月前 (09-13)技术文章17

#头条创作挑战赛#

目录

  • 1,关于go-admin
  • 2,使用go-admin进行构建
  • 3,使用go-admin进行数据库,后端初始化
  • 4,下载前端代码,进行node编译
  • 5,总结

1,关于go-admin


github地址:

https://github.com/go-admin-team/go-admin

国内:

https://gitee.com/go-admin-team/go-admin

一个非常不错的开源项目,完成度非常的高,基础的权限角色,组织机构都有了。

可以直接开发自己的业务模块,相关的代码了,减少了很多基础功能开发投入,节省了大量时间。非常不错。
基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务。

  • 多租户:系统默认支持多租户,按库分离,一个库一个租户。
  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),数据结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 参数管理:对系统动态配置常用参数。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 接口文档:根据业务代码自动生成相关的api接口文档。
  • 代码生成:根据数据表结构生成对应的增删改查相对应业务,全程可视化操作,让基本业务可以零代码实现。
  • 表单构建:自定义页面样式,拖拉拽实现页面布局。
  • 服务监控:查看一些服务器的基本信息。
  • 内容管理:demo功能,下设分类管理、内容管理。可以参考使用方便快速入门。
  • 定时任务:自动化任务,目前支持接口调用和函数调用。

2,使用go-admin进行构建


# https://goproxy.io/zh/
# 配置 GOPROXY 环境变量
export GOPROXY=https://proxy.golang.com.cn,direct

# 配置好 golang 代理执行:
# 最近 github 代码下载总是慢
git clone https://gitee.com/go-admin-team/go-admin.git

# 下载相关依赖
export GO111MODULE=on
go mod tidy

3,使用go-admin进行数据库,后端初始化


数据库使用 mysql 数据库,使用docker mysql 进行构建:

mysql:5.7 使用docker 启动,设置root密码是mysql

docker run --name mysqldb -v ${PWD}/data/mysqldb/data:/var/lib/mysql --restart=always \
        -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=go_admin -e TZ=Asia/Shanghai \
        -p 3306:3306 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

# 要是已经有了数据库,直接创建一个go_admin的数据库:
CREATE DATABASE IF NOT EXISTS `go_admin` CHARACTER SET utf8 COLLATE utf8_general_ci;

然后修改 config/settings.yml 数据库的配置文件:

...
    driver: mysql
    # 数据库连接字符串 mysql 缺省信息 charset=utf8&parseTime=True&loc=Local&timeout=1000ms
    source: root:mysql@tcp(127.0.0.1:3306)/go_admin?charset=utf8&parseTime=True&loc=Local&timeout=1000ms
#  databases:

进行数据库初始化:


go run main.go migrate -c config/settings.yml
...
2022-11-21 23:00:32.789+0800 trace /home/test/newDisk1/go/src/go-admin/cmd/migrate/migration/version/1653638869132_migrate.go:44 [0.322ms] [rows:1] INSERT INTO `sys_migration` (`version`,`apply_time`) VALUES ('1653638869132','2022-11-21 23:00:32.79')
数据库基础数据初始化成功
2022/11/21 23:00:32 !!! config init

项目启动,端口8000

go run main.go server -c config/settings.yml

后端接口swagger 地址:

http://localhost:8000/swagger/admin/index.html#/

4,下载前端代码,进行node编译


首先要自己折腾个 node 环境,或者使用 node:14 镜像也可以。

配置 源,加速编译
# npm 源
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
# yarn 源
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
git clone https://gitee.com/go-admin-team/go-admin-ui.git

cd go-admin-ui
yarn install
# 启动开发环境:
yarn run dev 

端口:
  - Local:   http://localhost:9527/ 

数据初始化成功之后就可以看到后端管理界面了:

4,总结


Element UI vue体验:https://vue2.go-admin.dev

账号 / 密码: admin / 123456

非常强大的golang 管理系统,使用gin进行项目开发,同时完成了基本的权限,角色,日志管理等非常多的功能。还集成了swagger 接口开发。
非常容易使用,源代码已经开放了,直接可以用来做个内部系统然后再进行二次开发了。

很快就可以发布上线了,领导非常喜欢。

相关文章

7种超轻量级的Linux发行版,能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统,而且有许多版本可以选择。有时候,你需要一种超轻量级的Linux发行版,它可以在资源有限的设备上运行,并且能够快速启动。本文将介绍7种超轻量级的Linux发行版...

学习ES6- 入门Vue(大量源代码及笔记,带你起飞)

ES6学习网站: https://es6.ruanyifeng.com/箭头函数普通函数//普通函数 this 指向调用时所在的对象(可变) let fn = function fn(a, b) {...

如何使用HTML5实现多个元素的拖放功能

通过使用HTML5的拖放功能我们可以拖放HTML页面元素。在上一篇文章中,我们介绍了有关于可以拖放单个元素的代码。在接下来的这篇文章中,我们将来介绍关于允许拖放多个元素的代码。话不多说,我们直接看示例...

为了成为Claude Code高手,我雇了个AI当教练

在AI编程的浪潮中,如何高效提升编程能力成为许多开发者关注的焦点。本文作者通过自身实践,分享了如何利用AI工具(如Claude Code和Cursor)进行编程协作,并通过“学习导航器”提示词实现高效...

AOP的实现落地(拦截过滤),一切都要从Servlet说起

一、一切要从Servlet说起1.1什么是ServletServlet(Server Applet),全称是Java Servlet,是提供基于协议请求/响应服务的Java类。在JavaEE中是Ser...

资深程序员是如何工作的?(资深程序员是什么意思)

最近在B站看到一个老外分享的一个资深程序员工作心得,他讲得很好,总结分享一下:1. 不懂就查资料,不需要面面俱到要点:编程不是记忆语言,而是理解模式和查找答案。资深开发者也常谷歌搜索。 重要性:消除“...