goadmin 学习笔记

1.安装命令行

Following three steps to run it.

Note: now you can quickly start by doing like this.

复制代码
$ go install github.com/GoAdminGroup/adm@latest
$ mkdir new_project && cd new_project
$ adm init

Or (use adm whose version higher or equal than v1.2.16)

复制代码
$ mkdir new_project && cd new_project
$ go install github.com/GoAdminGroup/adm@latest
$ adm init web

查看版本

复制代码
new@bogon src % adm -V    
GoAdmin CLI v1.2.24
问题1: 拒绝访问: http://127.0.0.1:9033/admin/login

原因1:找不到包,执行go run main.go 后,按照提示 go get 包

Go 复制代码
package main

import (
	"context"
	"errors"
	"io/ioutil"
	"log"
	"net/http"
	"os"
	"os/signal"
	"syscall"
	"time"

	_ "github.com/GoAdminGroup/go-admin/adapter/gin"              // web framework adapter
	_ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql" // sql driver
	_ "github.com/GoAdminGroup/themes/adminlte"                // ui theme

	"github.com/GoAdminGroup/go-admin/engine"
	"github.com/GoAdminGroup/go-admin/template"
	"github.com/GoAdminGroup/go-admin/template/chartjs"
	"github.com/gin-gonic/gin"

	"goadmin/models"  //此处goadmin换成你项目的名字
	"goadmin/pages"   //此处goadmin换成你项目的名字
	"goadmin/tables"  //此处goadmin换成你项目的名字,此处被坑过
)

func main() {
	startServer()
}

func startServer() {
	gin.SetMode(gin.ReleaseMode)
	gin.DefaultWriter = ioutil.Discard

	r := gin.Default()

	template.AddComp(chartjs.NewChart())

	eng := engine.Default()

	if err := eng.AddConfigFromJSON("./config.json").
		AddGenerators(tables.Generators).
		Use(r); err != nil {
		panic(err)
	}

	r.Static("/uploads", "./uploads")

	eng.HTML("GET", "/admin", pages.GetDashBoard)
	eng.HTMLFile("GET", "/admin/hello", "./html/hello.tmpl", map[string]interface{}{
		"msg": "Hello world",
	})

	models.Init(eng.MysqlConnection())

	srv := &http.Server{
		Addr:    ":9033",
		Handler: r,
	}

	go func() {
		if err := srv.ListenAndServe(); err != nil && errors.Is(err, http.ErrServerClosed) {
			log.Printf("listen: %s\n", err)
		}
	}()

	quit := make(chan os.Signal, 1)
	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
	<-quit
	log.Println("Shutting down server...")

	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
	defer cancel()

	if err := srv.Shutdown(ctx); err != nil {
		log.Fatal("Server forced to shutdown:", err)
	}
	log.Print("closing database connection")
	eng.MysqlConnection().Close()

	log.Println("Server exiting")
}
复制代码
"goadmin/models" //此处goadmin换成你项目的名字,因为名字不匹配,导致引入包时,找不到包。
问题2:go 版本与goadmin 版本不兼容,需要升级go 版本

因为我的go 版本是1.17 下载的goadmin 是 v1.2.24

区分几个路径
  • GOROOT:Golang的安装路径,安装之后就默认自带了
  • GOPATH:Golang的工作目录
问题3: 安装go 1.20版本
Go 复制代码
$ go install golang.org/dl/go1.20@latest
$ go1.20 download

参考:https://blog.csdn.net/perfumekristy/article/details/128880591

go1.17 与go1.20 两版本共存。

参考文档:http://doc.go-admin.cn/zh/install/

https://blog.csdn.net/qq_42647903/article/details/123253707

https://github.com/GoAdminGroup/go-admin ​​​​​​

相关推荐
rannn_11136 分钟前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面1 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
传奇开心果编程1 小时前
【传奇开心果系列】Flet框架实现的家庭记账本示例自定义模板
python·学习·ui·前端框架·自动化
草莓熊Lotso1 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他
_Kayo_8 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC131016311 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴93611 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头11 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑12 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA13 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习