Beego框架的详细使用笔记有哪些?

2026-05-22 11:111阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2142个文字,预计阅读时间需要9分钟。

Beego框架的详细使用笔记有哪些?

以下是对原文的简化修改:

以下是基于go v1.8和bee v2.0,使用Goland 2022.1开发的Beego+3项目。步骤包括安装Beego和bee包。

安装步骤:

1.下载并安装Beego和bee包:`go get github.com/beego/beego`(依赖go.mod文件)。

2.可能需要在Goland中设置配置才能使用。

以下beego3基于go v1.8+,bee v2.0+,开发工具是goland2022.1

一、Beego安装 1、安装beego和bee 1)下载beego和bee安装包:

go get github.com/beego/beego(依赖go.mod文件1),可能会在goland里面无法使用。

go get github.com/beego/beego/v2 go get github.com/beego/bee/v2

注意:

go get只能下载普通的包,如果下载安装程序需要用go install

go install github.com/beego/beego/v2 go install github.com/beego/bee/v2

  安装完之后,bee可执行文件默认存放在$GOPATH/bin里面,所以您需要把$GOPATH/bin添加到您的环境变量中,才可以进行下一步。如果你本机设置了GOBIN,那么上面的bee命令就会安装到GOBIN目录下。

注意

如果没有bee命令4

可以进行进入下载的bee工具源码目录(如:D:\GOPATH\pkg\mod\github.com\beego\bee\v2@v2.0.2):

执行 go build 会生成bee.exe文件,然后将bee.exe拷贝被go的安装目录的bin下。

2)使用goland开发工具:

可以通过以下方法来配置在goland里面使用2

  • 通过goland开发工具打开创建的项目,基于modules管理项目依赖 配置GOPROXY=goproxy.cn,direct

  • 执行go mod init projectname生成依赖管理文件go.mod(如果已存在,则省略)(beego 项目创建之后,我们还需要初始化go.mod文件。进入目录之后,使用go mod init初始化模块依赖。)
  • 执行go mod vendor将依赖包生成到本地
2、bee工具命令

1)bee new

new命令是新建一个 Web 项目,我们在命令行下执行bee new <项目名>就可以创建一个新的项目。但是注意该命令必须在$GOPATH/src下执行。在%GOPATH%/src目录下创建一个测试项目,并启动,浏览器输入localhost:8080/就可以创建的项目信息

cd %GOPATH%/src bee new hello cd hello bee run hello

2)bee generate5

  这个命令是用来自动化的生成代码的,包含了从数据库一键生成 model,还包含了 scaffold 的,通过这个命令(有多种形式):

bee generate scaffold [scaffoldname] [-fields=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]

或者bee generate appcode [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]让大家开发代码不再慢。

bee generate scaffold user -fields="id:int64,name:string,gender:int,age:int" -driver=mysql -conn="root:@tcp(127.0.0.1:3306)/beego"

3)bee api

  上面的new命令是用来新建 Web 项目,不过很多用户使用 beego 来开发 API 应用。所以这个api命令就是用来创建 API 应用的。

我们可以看到和 Web 项目相比,少了 static 和 views 目录,多了一个 test 模块,用来做单元测试的。

同时,该命令还支持一些自定义参数自动连接数据库创建相关 model 和 controller:bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:<password>@tcp(127.0.0.1:3306)/test"]如果 conn 参数为空则创建一个示例项目,否则将基于链接信息链接数据库创建项目。

4)bee run

  我们在开发 Go 项目的时候最大的问题是经常需要自己手动去编译再运行,bee run命令是监控 beego 的项目,通过fsnotify监控文件系统。但是注意该命令必须在$GOPATH/src/appname下执行。

5)bee pack

pack目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了。

6)bee migrate

这个命令是应用的数据库迁移命令,主要是用来每次应用升级,降级的SQL管理。如:bee migrate [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]

二、Beego的MVC架构-Controller

C:Controller,体现为各种功能具有以下特性:

(1)路由功能(2)控制器函数(3)CSRF(Cross-Site request forgery)过滤器(4)Session(5)错误处理&日志功能

1、参数配置

todo

2、路由设置

1)基础路由

  从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在routers/router.go文件中。最简单的 beego 路由由 URI 和闭包函数组成。

(1)基本 GET 路由

web.Get("/",func(ctx *context.Context){ ctx.Output.Body([]byte("hello world")) })

(2)基本 POST 路由

web.Post("/alice",func(ctx *context.Context){ ctx.Output.Body([]byte("bob")) })

(3)注册一个可以响应任何 HTTP 的路由

web.Any("/foo",func(ctx *context.Context){ ctx.Output.Body([]byte("bar")) })

2)Beego的RESTFUL路由

  在介绍这三种 beego 的路由实现之前先介绍 RESTful,我们知道 RESTful 是一种目前 API 开发中广泛采用的形式,beego 默认就是支持这样的请求方法,也就是用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。因此默认的路由是这样 RESTful 的请求方式。

3)Beego的正则路由

  为了用户更加方便的路由设置,beego 参考了 sinatra 的路由实现,支持多种方式的路由:

package main import ( "fmt" "github.com/beego/beego" ) type RegExpController struct { beego.Controller } func (this *RegExpController) Get() { this.Ctx.WriteString(fmt.Sprintln("test get")) id := this.Ctx.Input.Param(":id") this.Ctx.WriteString(fmt.Sprintf("id is :%s\n", id)) } func main() { //正则路由,从路径中提取参数,对于URL”/re1/123”可以匹配成功,此时变量”:id”值为”123”,URL”/re1/“可正常匹配 beego.Router("/re1/?:id", &RegExpController{})

    //正则路由,从路径中提取参数,对于URL”/re2/123”可以匹配成功,此时变量”:id”值为”123”,但URL”/re2/“匹配失败 beego.Router("/re2/:id", &RegExpController{})

beego.Run("127.0.0.1:80") }

4)固定路由

  固定路由也就是全匹配的路由,如下所示:

web.Router("/", &controllers.MainController{}) web.Router("/admin", &admin.UserController{}) web.Router("/admin/index", &admin.ArticleController{}) web.Router("/admin/addpkg", &admin.AddController{})

  如上所示的路由就是我们最常用的路由方式,一个固定的路由,一个控制器,然后根据用户请求方法不同请求控制器中对应的方法,典型的 RESTful 方式。

5)自定义方法及 RESTful 规则

(1)基本介绍

  上面列举的是默认的请求方法名(请求的 method 和函数名一致,例如GET请求执行Get函数,POST请求执行Post函数),如果用户期望自定义函数名,那么可以使用如下方式:

Beego框架的详细使用笔记有哪些?

web.Router("/",&IndexController{},"*:Index")

使用第三个参数,第三个参数就是用来设置对应 method 到函数名,定义如下:

  • *表示任意的 method 都执行该函数
  • 使用 www.cnblogs.com/hoaprox
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨小小打赏一下吧,如果囊中羞涩,不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.

本文共计2142个文字,预计阅读时间需要9分钟。

Beego框架的详细使用笔记有哪些?

以下是对原文的简化修改:

以下是基于go v1.8和bee v2.0,使用Goland 2022.1开发的Beego+3项目。步骤包括安装Beego和bee包。

安装步骤:

1.下载并安装Beego和bee包:`go get github.com/beego/beego`(依赖go.mod文件)。

2.可能需要在Goland中设置配置才能使用。

以下beego3基于go v1.8+,bee v2.0+,开发工具是goland2022.1

一、Beego安装 1、安装beego和bee 1)下载beego和bee安装包:

go get github.com/beego/beego(依赖go.mod文件1),可能会在goland里面无法使用。

go get github.com/beego/beego/v2 go get github.com/beego/bee/v2

注意:

go get只能下载普通的包,如果下载安装程序需要用go install

go install github.com/beego/beego/v2 go install github.com/beego/bee/v2

  安装完之后,bee可执行文件默认存放在$GOPATH/bin里面,所以您需要把$GOPATH/bin添加到您的环境变量中,才可以进行下一步。如果你本机设置了GOBIN,那么上面的bee命令就会安装到GOBIN目录下。

注意

如果没有bee命令4

可以进行进入下载的bee工具源码目录(如:D:\GOPATH\pkg\mod\github.com\beego\bee\v2@v2.0.2):

执行 go build 会生成bee.exe文件,然后将bee.exe拷贝被go的安装目录的bin下。

2)使用goland开发工具:

可以通过以下方法来配置在goland里面使用2

  • 通过goland开发工具打开创建的项目,基于modules管理项目依赖 配置GOPROXY=goproxy.cn,direct

  • 执行go mod init projectname生成依赖管理文件go.mod(如果已存在,则省略)(beego 项目创建之后,我们还需要初始化go.mod文件。进入目录之后,使用go mod init初始化模块依赖。)
  • 执行go mod vendor将依赖包生成到本地
2、bee工具命令

1)bee new

new命令是新建一个 Web 项目,我们在命令行下执行bee new <项目名>就可以创建一个新的项目。但是注意该命令必须在$GOPATH/src下执行。在%GOPATH%/src目录下创建一个测试项目,并启动,浏览器输入localhost:8080/就可以创建的项目信息

cd %GOPATH%/src bee new hello cd hello bee run hello

2)bee generate5

  这个命令是用来自动化的生成代码的,包含了从数据库一键生成 model,还包含了 scaffold 的,通过这个命令(有多种形式):

bee generate scaffold [scaffoldname] [-fields=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]

或者bee generate appcode [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]让大家开发代码不再慢。

bee generate scaffold user -fields="id:int64,name:string,gender:int,age:int" -driver=mysql -conn="root:@tcp(127.0.0.1:3306)/beego"

3)bee api

  上面的new命令是用来新建 Web 项目,不过很多用户使用 beego 来开发 API 应用。所以这个api命令就是用来创建 API 应用的。

我们可以看到和 Web 项目相比,少了 static 和 views 目录,多了一个 test 模块,用来做单元测试的。

同时,该命令还支持一些自定义参数自动连接数据库创建相关 model 和 controller:bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:<password>@tcp(127.0.0.1:3306)/test"]如果 conn 参数为空则创建一个示例项目,否则将基于链接信息链接数据库创建项目。

4)bee run

  我们在开发 Go 项目的时候最大的问题是经常需要自己手动去编译再运行,bee run命令是监控 beego 的项目,通过fsnotify监控文件系统。但是注意该命令必须在$GOPATH/src/appname下执行。

5)bee pack

pack目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了。

6)bee migrate

这个命令是应用的数据库迁移命令,主要是用来每次应用升级,降级的SQL管理。如:bee migrate [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]

二、Beego的MVC架构-Controller

C:Controller,体现为各种功能具有以下特性:

(1)路由功能(2)控制器函数(3)CSRF(Cross-Site request forgery)过滤器(4)Session(5)错误处理&日志功能

1、参数配置

todo

2、路由设置

1)基础路由

  从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在routers/router.go文件中。最简单的 beego 路由由 URI 和闭包函数组成。

(1)基本 GET 路由

web.Get("/",func(ctx *context.Context){ ctx.Output.Body([]byte("hello world")) })

(2)基本 POST 路由

web.Post("/alice",func(ctx *context.Context){ ctx.Output.Body([]byte("bob")) })

(3)注册一个可以响应任何 HTTP 的路由

web.Any("/foo",func(ctx *context.Context){ ctx.Output.Body([]byte("bar")) })

2)Beego的RESTFUL路由

  在介绍这三种 beego 的路由实现之前先介绍 RESTful,我们知道 RESTful 是一种目前 API 开发中广泛采用的形式,beego 默认就是支持这样的请求方法,也就是用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。因此默认的路由是这样 RESTful 的请求方式。

3)Beego的正则路由

  为了用户更加方便的路由设置,beego 参考了 sinatra 的路由实现,支持多种方式的路由:

package main import ( "fmt" "github.com/beego/beego" ) type RegExpController struct { beego.Controller } func (this *RegExpController) Get() { this.Ctx.WriteString(fmt.Sprintln("test get")) id := this.Ctx.Input.Param(":id") this.Ctx.WriteString(fmt.Sprintf("id is :%s\n", id)) } func main() { //正则路由,从路径中提取参数,对于URL”/re1/123”可以匹配成功,此时变量”:id”值为”123”,URL”/re1/“可正常匹配 beego.Router("/re1/?:id", &RegExpController{})

    //正则路由,从路径中提取参数,对于URL”/re2/123”可以匹配成功,此时变量”:id”值为”123”,但URL”/re2/“匹配失败 beego.Router("/re2/:id", &RegExpController{})

beego.Run("127.0.0.1:80") }

4)固定路由

  固定路由也就是全匹配的路由,如下所示:

web.Router("/", &controllers.MainController{}) web.Router("/admin", &admin.UserController{}) web.Router("/admin/index", &admin.ArticleController{}) web.Router("/admin/addpkg", &admin.AddController{})

  如上所示的路由就是我们最常用的路由方式,一个固定的路由,一个控制器,然后根据用户请求方法不同请求控制器中对应的方法,典型的 RESTful 方式。

5)自定义方法及 RESTful 规则

(1)基本介绍

  上面列举的是默认的请求方法名(请求的 method 和函数名一致,例如GET请求执行Get函数,POST请求执行Post函数),如果用户期望自定义函数名,那么可以使用如下方式:

Beego框架的详细使用笔记有哪些?

web.Router("/",&IndexController{},"*:Index")

使用第三个参数,第三个参数就是用来设置对应 method 到函数名,定义如下:

  • *表示任意的 method 都执行该函数
  • 使用 www.cnblogs.com/hoaprox
    如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨小小打赏一下吧,如果囊中羞涩,不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.