1、安装beego
安装过程可以参考文档beego安装
由于国内go get速度比较慢,可以开启代理:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
- 安装beego
go get github.com/astaxie/beego
- 安装bee
go get github.com/beego/bee
查看bee version
D:\GOLANG_PROJECT>bee version
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v1.12.0
├── Beego : 1.12.2
├── GoVersion : go1.16.4
├── GOOS : windows
├── GOARCH : amd64
├── NumCPU : 4
├── GOPATH : D:\Program_Files\go1.16.4.windows-amd64\gopath
├── GOROOT : D:\Program_Files\go1.16.4.windows-amd64\go
├── Compiler : gc
└── Date : Tuesday, 28 Dec 2021
D:\GOLANG_PROJECT>
2、创建beego项目
D:\GOLANG_PROJECT>bee new BeegoDemo1
2021/12/28 22:31:36 INFO ▶ 0001 generate new project support go modules.
2021/12/28 22:31:36 INFO ▶ 0002 Creating application...
create D:\GOLANG_PROJECT\BeegoDemo1\go.mod
create D:\GOLANG_PROJECT\BeegoDemo1\
create D:\GOLANG_PROJECT\BeegoDemo1\conf\
create D:\GOLANG_PROJECT\BeegoDemo1\controllers\
create D:\GOLANG_PROJECT\BeegoDemo1\models\
create D:\GOLANG_PROJECT\BeegoDemo1\routers\
create D:\GOLANG_PROJECT\BeegoDemo1\tests\
create D:\GOLANG_PROJECT\BeegoDemo1\static\
create D:\GOLANG_PROJECT\BeegoDemo1\static\js\
create D:\GOLANG_PROJECT\BeegoDemo1\static\css\
create D:\GOLANG_PROJECT\BeegoDemo1\static\img\
create D:\GOLANG_PROJECT\BeegoDemo1\views\
create D:\GOLANG_PROJECT\BeegoDemo1\conf\app.conf
create D:\GOLANG_PROJECT\BeegoDemo1\controllers\default.go
create D:\GOLANG_PROJECT\BeegoDemo1\views\index.tpl
create D:\GOLANG_PROJECT\BeegoDemo1\routers\router.go
create D:\GOLANG_PROJECT\BeegoDemo1\tests\default_test.go
create D:\GOLANG_PROJECT\BeegoDemo1\main.go
2021/12/28 22:31:37 SUCCESS ▶ 0003 New application successfully created!
3、运行beego
(1)将新建的BeegoDemo1,导入到GOLAND中
(2)配置go modules和go proxy,配置方法见:GOLAND中配置GOMODULE和GOPROXY
直接点击运行或通过bee run来运行:
4、路由设置
在beego框架中,支持四种路由设置,他们分别是:基础路由,固定路由,正则路由和自动路由。
-
1、基础路由:
直接通过beego.Get,beego.POST,beego.Head,beego.Delete等方法来进行路由的映射,我们通过代码给大家来进行演示。我们知道,常见的http请求方法操作有:GET,HEAD,PUT,POST,DELETE,OPTIONS等。
1.首先是基础的GET路由。下面我们通过一个例子来向大家进行展示。beego.GET("",func)
2.基础的POSt路由:beego.POST("",func)
3.除此之外,还支持Patch,Head,Delete等基础路由。
以上这种请求和对应找到请求方法类型的方式就是RESTful形式,我们最常用的也是RESTful形式
RESTful是目前开发API中非常常用的一种形式,其实就是RESTful形式就是用户是get请求时就自动执行Get方法,Post请求就执行Post方法。
-
2、固定路由:
诸如以下此种代码形式:beego.Router("/",controller);
Get请求就会对应到Get方法,Post就会对应到Post方法,Delete就会对应到Delete方法,Header方法就会对应Header方法。
-
3、正则路由:
正则路由是指可以在进行固定路由的基础上,支持匹配一定格式的正则表达式。比如:id,:username,自定义正则,file的路径和后缀切换以及全匹配等操作。 -
4、自定义路由
上面两种路由都是默认的根据请求的类型,Get就执行Get方法,Post执行Post方法,比较局限。因为在开发的时候大部分都是使用固定匹配想要直接执行对应的逻辑控制方法,因此beego提供给我们了可以自定义的自定义路由配置。方式如下:
beego.Router("/",&IndexController{},"")
可以用的HTTP Method:
- "*":包含以下所有的函数
- "get":GET 请求
- "post":POST 请求
- "put":PUT 请求
- "delete":DELETE 请求
- "patch":PATCH 请求
- "options":OPTIONS 请求
- "head":HEAD 请求
上面这些对应的请求方法,在beego.Controller中,定义了很多的方法,比如Init,Prepare,Post,Get,Head,Delete等方法。以上分析的是beego框架的Router以及Controller运行逻辑。
实例:https://gitee.com/cosmoswong/BeegoRouteDemo
实例项目:
(1)个人博客:https://gitee.com/cosmoswong/BlogProject.git
(2)任务列表:https://gitee.com/cosmoswong/ToDoListProject.git