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