IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Golang语言Beego框架使用总结

    unvs发表于 2021-09-14 02:59:35
    love 0

    一、godoc 命令启动本地golang web网站

    命令窗口指向目录后,开启端口命令:
    godoc -http=:8080

    运行完成后打开浏览器输入网址:http://localhost:8080能看到网站,并查看帮助文档

    如果提示godoc命令不存在等报错,则需要如下操作:

    命令无效的原因是go 1.13 版本后 移除了godoc相关的一些命令,因此需手动安装
    下面是安装使用该命令的方法:

    第一步
    进入命令行
    输入下面两行代码
    go env -w GO111MODULE=on
    go env -w GOPROXY=”https://goproxy.io,direct”
    这是配置相关代理

    第二步
    命令行输入,安装godoc
    go get golang.org/x/tools/cmd/godoc
    安装完成后即可使用godoc命令,生成文档

    二、配置MYSQL数据库
    main.go文件里也可以配置数据库
    beego框架里一般有个models/db.go文件,通过orm类实例化数据库链接
    命名格式如下:

    dsn := dbuser + ":" +dbpassword +"@tcp("+dbhost+":"+dbport+")/"+dbname+"?charset=utf8&loc=Asia%2FShanghai"
    orm.RegisterDataBase("default","mysql",dsn)

    三、路由定义文件
    一般有个路由routers/router.go文件定义路由

    四、使用go搭建单页面的web服务器
    package main

    import (
    “fmt”
    “net/http”
    “strings”
    “log”
    )
    func sayhelloName(w http.ResponseWriter, r *http.Request) {
    fmt.Println(r.Method)
    r.ParseForm() //解析参数,默认是不会解析的
    fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息
    fmt.Println(“path”, r.URL.Path)
    fmt.Println(“scheme”, r.URL.Scheme)
    fmt.Println(r.Form["url_long"])
    for k, v := range r.Form {
    fmt.Println(“key:”, k)
    fmt.Println(“val:”, strings.Join(v, “”))
    }
    fmt.Fprintf(w, “Hello astaxie!”) //这个写入到w的是输出到客户端的
    }

    func main() {
    http.HandleFunc(“/hello/”, sayhelloName) //设置访问的路由
    err := http.ListenAndServe(“:9090″, nil) //设置监听的端口
    if err != nil {
    log.Fatal(“ListenAndServe………..: “, err)
    }
    }

    五、下载项目依赖包
    go mod vendor

    六、运行项目与文件命令
    go run main.go

    七、golang项目修改文件后,怎么做到程序自动编译,直接访问地址看到效果,不用每次都要go run
    办法1:
    因为目前项目用得beego框架,bee工具有自带热编译命令(bee工具也适用其他GO项目)

    https://beego.me/docs/install/bee.md

    第一步:定位到go目录,安装bee工具
    >cd c:\go
    >go get -u github.com/beego/bee/v2
    第二部:
    新建窗口,定位到go项目目录,执行如下命令
    >bee run
    完成,窗口保持,当项目文件有修改更新时,窗口会自动监控执行go run main.go,也就是完成了热编译

    办法2:
    通过fresh、gin进行热部署

    https://blog.csdn.net/u014155085/article/details/106571256

    出现疑难问题:
    exec git:executable file not found in PATH
    解决方案:1、可能是未安装git,及环境变量配置不正确,参考文章https://blog.csdn.net/Traditional_/article/details/113599736
    1.打开“环境变量”设置界面方法一,在“我的电脑”上右击鼠标,在弹出菜单中选择“属性”。
    2.在“系统”界面选择“高级系统设置”~“高级”~“环境变量”,从而进行环境变量配置。
    2、检查Go语言依赖的代理地址(同上),我应该是执行了下面命令解决了上面热部署包安装的问题
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct

    办法3:
    gowatch,同方法2类似
    安装
    go get github.com/silenceper/gowatch
    进入项目程序目录
    执行gowatch即可
    如果源码有修改会自动重新编译
    注:目录中不能有其它main包 会报错

    办法4:
    go get -u github.com/cosmtrek/air
    进入main文件目录下 执行air
    就会自动监听编译



沪ICP备19023445号-2号
友情链接