经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
GinAdmin——基于golang的web管理平台
来源:cnblogs  作者:码缘  时间:2021/5/6 18:01:15  对本文有异议

GinAdmin

这个项目是以Gin框架为基础搭建的后台管理平台,虽然很多人都认为go是用来开发高性能服务端项目的,但是也难免有要做web管理端的需求,总不能再使用别的语言来开发吧。所以整合出了GinAdmin项目,请大家多提意见指正!

GitHub地址

依赖

  • golang > 1.8

依赖

  • Gin
  • BootStrap
  • LayUi
  • WebUpload

使用文档

开始使用

  1. git 克隆地址

    1. git clone https://github.com/gphper/ginadmin.git
  2. 下载依赖包

    1. go mod download
  3. 配置 conf/config.ini文件

    1. [mysql]
    2. username=root
    3. password=123456
    4. database=db_beego
    5. host=127.0.0.1
    6. port=3306
    7. max_open_conn=50
    8. max_idle_conn=20
    9. [session]
    10. session_name=gosession_id
    11. [base]
    12. port=:8091

项目目录

  1. |--api // Api接口控制器
  2. |--comment // 封装的公共方法
  3. |--conf // 配置文件
  4. |--controllers // Admin控制器存在目录
  5. |--logs // 日志存放目录
  6. |--middleware //中间件
  7. |--models //Gorm中的model类
  8. |--router //自定义路由目录
  9. |--statics //css js等静态文件目录
  10. |--uploadfile //上传文件目录
  11. |--views //视图模板目录

分页

  1. 使用 comment/util.go 里面的 PageOperation 进行分页
    1. adminDb := models.Db.Table("admin_users").Select("nickname","username").Where("uid != ?", 1)
    2. adminUserData := comment.PageOperation(c, adminDb, 1, &adminUserList)
  2. 在html中使用
    1. {{ .adminUserData.PageHtml }}

日志

  1. 自定义日志 在 comment/loggers 目录下新建logger
    1. 参考 userlog.go 文件
  2. 调用自定义的的logger写日志
    1. loggers.UserLogger.Info("无法获取网址",
    2. zap.String("url", "http://www.baidu.com"),
    3. zap.Int("attempt", 3),
    4. zap.Duration("backoff", time.Second),)

数据库

  1. 数据库迁移,将定义好的model填充写到下面的 AutoMigrate 方法中

    1. Db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&AdminUsers{},&AdminGroup{})
  2. 数据填充,将数据写入到 models\default.go 下面的 FillData

定时任务

  • comment/cron/cron.go 添加定时执行任务

配置文件

  1. 现在 conf/conf.go 添加配置项的 struct 类型,例如

    1. type AppConf struct {
    2. BaseConf `ini:"base"`
    3. }
    4. type BaseConf struct {
    5. Port string `ini:"port"`
    6. }
  2. conf/conf.ini 添加配置信息

    1. [base]
    2. port=:8091
  3. 在代码中调用配置文件的信息

    1. conf.App.BaseConf.Port

模板页面

  • 所有的后台模板都写到 views/template 目录下面,并且分目录存储,调用时按照 目录/模板名称 的方式调用

用户权限

  • 菜单权限定义到 comment/menu/menu.go 文件下,定义完之后在用户组管理里面编辑权限

  • 在控制器中可用从 gin.context 获取权限

    1. privs,_ := c.Get("userPrivs")
  • template 中判断权限的函数 judgeContainPriv 定义在 comment/template/default.go 文件下

    1. "judgeContainPriv": func(privMap map[string]interface{},priv string)bool {
    2. //判断权限是all的全通过
    3. _,o :=privMap["all"]
    4. if o {
    5. return true
    6. }
    7. _,ok := privMap[priv]
    8. return ok
    9. },

原文链接:http://www.cnblogs.com/itsuibi/p/14696493.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号