• goadmin 学习笔记


    1.安装命令行

    Following three steps to run it.

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

    1. $ go install github.com/GoAdminGroup/adm@latest
    2. $ mkdir new_project && cd new_project
    3. $ adm init

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

    1. $ mkdir new_project && cd new_project
    2. $ go install github.com/GoAdminGroup/adm@latest
    3. $ adm init web

    查看版本

    1. new@bogon src % adm -V
    2. GoAdmin CLI v1.2.24

    问题1: 拒绝访问: http://127.0.0.1:9033/admin/login

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

    1. package main
    2. import (
    3. "context"
    4. "errors"
    5. "io/ioutil"
    6. "log"
    7. "net/http"
    8. "os"
    9. "os/signal"
    10. "syscall"
    11. "time"
    12. _ "github.com/GoAdminGroup/go-admin/adapter/gin" // web framework adapter
    13. _ "github.com/GoAdminGroup/go-admin/modules/db/drivers/mysql" // sql driver
    14. _ "github.com/GoAdminGroup/themes/adminlte" // ui theme
    15. "github.com/GoAdminGroup/go-admin/engine"
    16. "github.com/GoAdminGroup/go-admin/template"
    17. "github.com/GoAdminGroup/go-admin/template/chartjs"
    18. "github.com/gin-gonic/gin"
    19. "goadmin/models" //此处goadmin换成你项目的名字
    20. "goadmin/pages" //此处goadmin换成你项目的名字
    21. "goadmin/tables" //此处goadmin换成你项目的名字,此处被坑过
    22. )
    23. func main() {
    24. startServer()
    25. }
    26. func startServer() {
    27. gin.SetMode(gin.ReleaseMode)
    28. gin.DefaultWriter = ioutil.Discard
    29. r := gin.Default()
    30. template.AddComp(chartjs.NewChart())
    31. eng := engine.Default()
    32. if err := eng.AddConfigFromJSON("./config.json").
    33. AddGenerators(tables.Generators).
    34. Use(r); err != nil {
    35. panic(err)
    36. }
    37. r.Static("/uploads", "./uploads")
    38. eng.HTML("GET", "/admin", pages.GetDashBoard)
    39. eng.HTMLFile("GET", "/admin/hello", "./html/hello.tmpl", map[string]interface{}{
    40. "msg": "Hello world",
    41. })
    42. models.Init(eng.MysqlConnection())
    43. srv := &http.Server{
    44. Addr: ":9033",
    45. Handler: r,
    46. }
    47. go func() {
    48. if err := srv.ListenAndServe(); err != nil && errors.Is(err, http.ErrServerClosed) {
    49. log.Printf("listen: %s\n", err)
    50. }
    51. }()
    52. quit := make(chan os.Signal, 1)
    53. signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
    54. <-quit
    55. log.Println("Shutting down server...")
    56. ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    57. defer cancel()
    58. if err := srv.Shutdown(ctx); err != nil {
    59. log.Fatal("Server forced to shutdown:", err)
    60. }
    61. log.Print("closing database connection")
    62. eng.MysqlConnection().Close()
    63. log.Println("Server exiting")
    64. }
    "goadmin/models" //此处goadmin换成你项目的名字,因为名字不匹配,导致引入包时,找不到包。

    问题2:go 版本与goadmin 版本不兼容,需要升级go 版本

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

    区分几个路径
    • GOROOT:Golang的安装路径,安装之后就默认自带了
    • GOPATH:Golang的工作目录
    GO111MODULE环境变量

    GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找

    GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找

    GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种

    情况下可以分为两种情形:
    (1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
    (2)当前文件在包含go.mod文件的目录下面

    问题3: 安装go 1.20版本
    1. $ go install golang.org/dl/go1.20@latest
    2. $ 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  ​​​​​​

  • 相关阅读:
    【MySQL】索引与事务
    剑指 Offer 16. 数值的整数次方
    17 OpenCv Canny算子
    D1. Too Many Segments (easy version)
    Electron实战之入门
    无法访问org.springframework.core.env.EnvironmentCapable
    SQL必需掌握的100个重要知识点:过滤数据
    【Webpack】自定义file-loader时图片解析后出现[object%20Module]
    kotlin协程与线程池
    HTB-Valentine
  • 原文地址:https://blog.csdn.net/lxw1844912514/article/details/133208153