1.安装go(配置环境变量)

2.安装gorm(Goland编辑器举例):
        go env -w GO111MODULE=on
         go env -w GOPROXY=https://goproxy.cn,direct
3.初始化项目(首先需要在工作目录新建bin文件夹,pkg文件夹,src文件夹):
go mod init
4.依赖关系处理,根据go.mod文件
         go mod tidy
5.安装Beego框架:
go get -u github.com/astaxie/beego
6.安装Beego工具:
 
go get -u github.com/beego/bee
go get -u github.com/beego/bee/v2
go install github.com/beego/bee/v2@master
安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以需要把 $GOPATH/bin 添加到环境变量中,才可以进行下一步。
7.如果还运行不起来,mod命令(去除不需要的依赖):
go mod tidy
8.Beego框架命令(重要部分):
8.1 bee:查看框架还是否安装成功
8.2 bee new 项目名称:初始化项目
8.3 bee run:编辑运行项目
8.4 bee pack 目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了
        8.5 bee bale 命令:这个命令目前仅限内部使用,具体实现方案未完善,主要用来压缩所有的静态文件变成一个变量申明文件,全部编译到二进制文件里面,用户发布的时候携带静态文件,包括 js、css、img 和 views。
 最后在启动运行时进行非覆盖式的自解压
 
8.6 bee version 命令:这个命令是动态获取 bee、beego 和 Go 的版本,这样一旦用户出现错误,可以通过该命令来查看当前的版本
8.7 generate 命令:这个命令是用来自动化的生成代码的,包含了从数据库一键生成 model,还包含了 scaffold 的,通过这个命令,让大家开发代码不再慢
8.7.1 generate scaffold
8.7.2 generate model
8.7.3 generate controller
8.7.4 generate view
8.7.5 generate migration
8.7.6 generate docs
8.7.7 generate routers:是从原来beego中剥离出来的功能。在早期,beego的项目必须在启动 的时候才会触发生成路由文件
8.7.8 generate test:
8.7.9 generate appcode:
8.7.10 generate router:
8.8 migrate 命令:这个命令是应用的数据库迁移命令,主要是用来每次应用升级,降级的 SQL 管理
8.8.1:bee migrate
8.8.2:bee migrate rollback
8.8.3:bee migrate reset
8.8.4:bee migrate refresh
         8.9 dockerize 命令:这个命令可以通过生成 Dockerfile 文件来实现 docker 化你的应用
 
 
9.Goweb 配置(全局配置:相当于Gin框架yaml文件):
9.1:设置参数:
mysql_user = "root"
mysql_password = "root"
mysql_host = "127.0.0.1:3306"
mysql_dbname = "xst"
9.2:获取参数
beego.AppConfig.String("mysql_user")
beego.AppConfig.String("mysql_password")
beego.AppConfig.String("mysql_host")
beego.AppConfig.String("mysql_dbname")
10.分组配置(全部配置:多环境可随意切换(设置为不同的运行级别:由runmode决定读取默认参数)):
runmode = "test1" 决定使用那个配置
[test1]
mysql_user = "root"
mysql_password = "root"
mysql_host = "127.0.0.1:3306"
mysql_dbname = "testdb1"
[test2]
mysql_user = "root"
mysql_password = "root"
mysql_host = "127.0.0.1:3306"
mysql_dbname = "testdb2"
[test3]
mysql_user = "root"
mysql_password = "root"
mysql_host = "127.0.0.1:3306"
mysql_dbname = "testdb3"
11.文件包含:关键词:include(引入服务关键词)
12.路由绑定
路由绑定方法1
beego.Get("/hello", func(ctx *context.Context) {
ctx.Output.Body([]byte("hi beego"))
})
路由绑定方法2
func Index(ctx *context.Context) {
ctx.Output.Body([]byte("hello beego"))
}
路由访问
beego.Post("/index", Index)
13.数据绑定
        beego.Get (router, beego.FilterFunc)
         beego.Post (router, beego.FilterFunc)
         beego.Any (router, beego.FilterFunc)
        “/”的所有HTTP请求方法都由MainController控制器的对应函数处理
         beego.Router("/",&controllers.MainController{))
        // “/user”的所有HTTP请求方法都由UserControl1er控制器的对应函数处理
         // 例如:GET/user请求由Get()函数处理,P0ST/user请求由Post()函数处理
         beego.Router("/user",&controllers.UserController{})
14.渲染视图
  
 
type UserController struct {beego.Controller
}func(c *UserController) Get(){fmt.Println("数据测试")c.TplName = "user.tpl"
} 
15.获取参数,返回int类型
        获取整形
         id, _ := c.GetInt("uid")
        获取字符串类型
         username := c.GetString("username", "none")
        获取浮点型
         balance, _ := c.GetFloat("balance", 0)
16.数据库操作:
package controllers
        import (
             "fmt"
             beego "github.com/beego/beego/v2/server/web"
             "github.com/beego/beego/v2/client/orm"
             _ "github.com/go-sql-driver/mysql"
         )
        type UserController struct {
             beego.Controller
         }
        //定义结构体
         type Users struct {
             Id uint
             Username string
             Sex string
             Age uint8
         }
        //指定表名
         func (u *Users) TableName() string {
             return "users"
         }
        //初始化
         func init() {
             //注册数据库
             orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8")
             //注册model
             orm.RegisterModel(new(Users))
             orm.Debug = true
         }
        //匿名函数
         func(c *UserController) Get(){
             //创建orm对象
             o := orm.NewOrm()
             //数据填充
             user := new(Users)
             user.Id = 3
             user.Username = "mike"
             user.Sex = "女"
             user.Age = 18
            //数据库操作
             _, err := o.Insert(user)
             fmt.Printf("erros",err)
             c.TplName = "user.tpl"
         }