• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go语言开发web框架beego

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

beego环境部署

 部署前,先确认好golang已安装并配置完GOROOT、GOPATH;还需安装好git版本编排工具(sudo  apt-get install  git)并配置好环境变量,后面下载beego使用命令go get  github.com/astaxie/beego需要用到git和go等

 配置好go和git后,正式部署beego环境,linux和windows环境部署类似:

#从github上下载beego和bee工具
go get -v -u github.com/astaxie/beego
go get -v -u github.com/beego/bee

#安装bee后,会将bee命令放在GOPATH/bin路径下,所以还要配置bee的环境变量
vim  .profile
export PATH=/usr/local/go/bin/:$PATH
export GOPATH=$HOME/go
export PATH=$GOPATH/bin/:$PATH
source  .profile

#快速建立一个应用来检测安装
cd $GOPATH/src
bee new hello   #这个命令在任何目录下执行都会在$GOPATH/src下创建应用
cd hello
bee run  #这个命令必须在要运行应用的目录下执行,只有进入应用,才可执行main.go

路由设置

 固定路由:也就是全匹配的路由。一个固定的路由,一个控制器,然后根据用户请求方法不同请求控制器中对应的方法,使用beego默认的请求方法,用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。

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

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

beego.Router(“/api/?:id”, &controllers.RController{})

默认匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123”
beego.Router(“/api/:id”, &controllers.RController{})

默认匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123”,但URL”/api/“匹配失败
beego.Router(“/api/:id([0-9]+)“, &controllers.RController{})

自定义正则匹配 //例如对于URL”/api/123”可以匹配成功,此时变量”:id”值为”123”
beego.Router(“/user/:username([\\w]+)“, &controllers.RController{})

正则字符串匹配 //例如对于URL”/user/astaxie”可以匹配成功,此时变量”:username”值为”astaxie”
beego.Router(“/download/*.*”, &controllers.RController{})

*匹配方式 //例如对于URL”/download/file/api.xml”可以匹配成功,此时变量”:path”值为”file/api”, “:ext”值为”xml”
beego.Router(“/download/ceshi/*“, &controllers.RController{})

*全匹配方式 //例如对于URL”/download/ceshi/file/api.json”可以匹配成功,此时变量”:splat”值为”file/api.json”
beego.Router(“/:id:int”, &controllers.RController{})

int 类型设置方式,匹配 :id为int 类型,框架帮你实现了正则 ([0-9]+)
beego.Router(“/:hi:string”, &controllers.RController{})

string 类型设置方式,匹配 :hi 为 string 类型。框架帮你实现了正则 ([\w]+)
beego.Router(“/cms_:id([0-9]+).html”, &controllers.CmsController{})

带有前缀的自定义正则 //匹配 :id 为正则类型。匹配 cms_123.html 这样的 url :id = 123

  例如匹配正则:beego.Router(“/cms_:id:int.html”,&controllers.IndexController{}),对应的逻辑控制端代码如下

#正则路由配置:
#说明下,如果路由中使用了自定义方法的话,那么默认的get(),post()方法都要重新声明
func init() {
    beego.Router("/", &controllers.MainController{})
    beego.Router("/index/?cmd_:id:int.html", &controllers.IndexController{},"get:GetShow;post:Post")
}

#逻辑控制端配置:
func (t *IndexController) GetShow(){
	t.Data["name"] = "index"
	t.Data["gender"] = "male"
	t.Data["hello"] = "world"
	t.TplName = "index.html"
	name := t.GetString(":name")
	beego.Info("name=",name)
}
func (t *IndexController) Post(){
	t.Data["name"] = "blockchain"
	t.TplName = "index.html"
}

#假如用户在前端输入http://localhost:8080/index/cmd_123.html
#在goland  IDE控制台获取到name健的输出为:
2019/01/16 19:23:02.394 [I] [default.go:21]  name= 123

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
从零搭建Go语言开发环境发布时间:2022-07-10
下一篇:
GO语言介绍以及开发环境配置发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap